MySQL :: MySQL 5.7 Manuale di riferimento:: 3.3.3 Caricamento dei dati in una tabella

3.3.3 Caricamento dei dati in una tabella

Dopo aver creato la tabella, è necessario popolarla. Le istruzioniLOAD DATA eINSERT sono utili per questo.

Supponiamo che i tuoi record pet possano essere descritti come mostrato qui. (Osserva che MySQL si aspetta date nel formato'YYYY-MM-DD' ; questo potrebbe differire da quello a cui sei abituato.)

name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane cane m 1979-08-31 1995-07-29
Allegre Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny serpente m 1996-04-29

Perché sei all’inizio con una tabella vuota, un modo semplice per popolare è quello di creare un file di testo che contiene una riga per ogni animali, quindi caricare il contenuto del file nella tabella con una singola istruzione.

È possibile creare un file di testo pet.txt contenente un record per riga, con valori separati da schede e forniti nell’ordine in cui le colonne sono state elencate nell’istruzione CREATE TABLE. Per i valori mancanti (come i sessi sconosciuti o le date di morte per gli animali che sono ancora vivi), è possibile utilizzare NULL valori. Per rappresentarli nel tuo file di testo, usa \N (barra rovesciata, maiuscola). Per esempio, il record per Whistler l’uccello sarebbe simile a questa (dove gli spazi vuoti tra i valori di un singolo carattere di tabulazione):

Whistler Gwen bird \N 1997-12-09 \N

caricare il file di testo pet.txt nel pet tabella, utilizzare questa istruzione:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

Se il file è stato creato in Windows con un editor che usi \r\n come terminatore di riga, si dovrebbe utilizzare questa istruzione invece:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';

(Su un Apple computer che esegue macOS, si sarebbe probabilmente desidera utilizzare LINES TERMINATED BY '\r'.)

È possibile specificare esplicitamente il separatore di valori di colonna e il marcatore di fine riga nell’istruzione LOAD DATA se lo si desidera, ma i valori predefiniti sono tab e linefeed. Questi sono sufficienti affinché l’istruzione legga correttamente il file pet.txt.

Se l’istruzione fallisce, è probabile che l’installazione di MySQL non abbia la capacità di file locale abilitata per impostazione predefinita. Vedere Sezione 6.1.6, “Considerazioni di sicurezza per CARICARE I DATI LOCALI”, per informazioni su come modificare questo.

Quando si desidera aggiungere nuovi record uno alla volta, l’istruzione INSERT è utile. Nella sua forma più semplice, si forniscono valori per ogni colonna, nell’ordine in cui le colonne sono state elencate nell’istruzione CREATE TABLE. Supponiamo che Diane ottiene un nuovo criceto di nome ” Puffball.”È possibile aggiungere un nuovo record utilizzando un’istruzioneINSERT come questa:

mysql> INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

I valori di stringa e data sono specificati come stringhe tra virgolette qui. Inoltre, con INSERT, è possibile inserire NULL direttamente per rappresentare un valore mancante. Non si utilizza \Ncome si fa conLOAD DATA.

Da questo esempio, dovresti essere in grado di vedere che ci sarebbe molta più digitazione per caricare i tuoi record inizialmente usando diverse istruzioni INSERTpiuttosto che una singola istruzione LOAD DATA.