MySQL LOAD statement e uso del terminatore di linea

Ultimo aggiornamento del 26 febbraio 2020 08:08:23 (UTC/GMT +8 ore)

LOAD statement

MySQL LOAD statement popola una tabella.

Supponiamo che l’utente abbia un file .txt di nome ‘pub.txt’ in una cartella propria, contenente 1 record per riga e separato da tabulazioni e disposto in ordine come le colonne elencate nella tabella. Si può usare l’istruzione LOAD per popolare la tabella. Per i valori mancanti, l’utente può usare valori NULL e questo dovrebbe essere rappresentato da ‘\N’ nel file di testo.

Sintassi:

LOAD DATA LOCAL INFILE '' INTO TABLE ;

Argomenti

Nome Descrizione
Path L’indirizzo del file.
Nome_file Il nome del file .txt.
Nome_tabella La tabella dove verranno caricati i dati.

Esempio:

Nel seguente codice, il contenuto del file di testo pub.txt sarà caricato nella tabella degli editori.

Il percorso del file dovrebbe essere menzionato.

Il file di testo contiene la riga come –

P002<tab>BPP Publication<tab>Mumbai<tab>India<tab>New Delhi<tab><tab>1985-10-01

Codice:

LOAD DATA LOCAL INFILE 'pub.txt' INTO TABLE publisher;

Tabella d’esempio: publisher

Dichiarazione LOAD MySQL con terminatore di riga

Le dichiarazioni LOAD MySQL con ‘\r\n’ come terminatore di riga possono anche essere usate per popolare una tabella.

Esempio:

Il seguente codice caricherà i record dal file pub.txt nella tabella degli editori. Il ‘\r\n’ può essere usato come terminatore di riga.

Il file di testo contiene la riga come –

P002<tab>BPP Publication<tab>Mumbai<tab>India<tab>New Delhi<tab><tab>1985-10-01\r\n

Tabella di esempio: publisher

Codice:

LOAD DATA LOCAL INFILE 'path/pub.txt' INTO TABLE publisherLINES TERMINATED BY \r\n ;

MySQL carica i dati in una tabella con l’istruzione insert

Per inserire nuovi record in una tabella si può usare l’istruzione INSERT. I valori saranno forniti dall’utente nello stesso ordine in cui le colonne sono elencate nella tabella. I valori delle stringhe e delle date devono essere specificati all’interno di una stringa virgolettata.

Sintassi

INSERT INTO <table_name> values(value1,value2,....);

Argomenti

Nome Descrizione
Nome_tabella Nome della tabella.
valore1,valore2,… Valori che saranno inseriti nella sequenza di colonne.

Esempio:

L’istruzione seguente inserisce una riga nella tabella ‘publisher’ che contiene i valori secondo la sequenza delle colonne.

Tabella d’esempio: publisher

Codice:

INSERT INTO publisher values(‘P010’,’ Novel Publisher Ltd.’,’ mumbai’,’ India’,’ hydrabad’);

MySQL importa dati da csv usando LOAD DATA INFILE

È possibile importare dati da un file CSV in una tabella MySQL. Ecco la struttura della tabella MySQL e il CSV

Struttura della tabella MySQL:

Sample Output:

MySQL> describe std;+--------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+--------+-------------+------+-----+---------+-------+| rollno | int(11) | NO | PRI | NULL | || class | varchar(15) | YES | | NULL | || name | varchar(45) | YES | | NULL | |+--------+-------------+------+-----+---------+-------+3 rows in set (0.01 sec)

Dettagli del file CSV (book1.csv) :

NAME,CLASS,ROLLNO
David,V,9
Subir,Vii,12
Taniya,VI,10
Anish,V,14

Sample Output:

MySQL> LOAD DATA LOCAL INFILE 'book1.csv' INTO table std FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (name, class, rollno);Query OK, 4 rows affected (0.04 sec)Records: 4 Deleted: 0 Skipped: 0 Warnings: 0MySQL> SELECT * FROM std;+--------+-------+--------+| rollno | class | name |+--------+-------+--------+| 9 | V | David || 10 | VI | Taniya || 12 | Vii | Subir || 14 | V | Anish |+--------+-------+--------+4 rows in set (0.00 sec)

Precedente: MySQL DATABASE
Prossimo: MySQL avanza creando la tabella MySQL Constraints

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *