5.7 Reference Manual:: 3.3.3 indlæsning af Data i en tabel

3.3.3 indlæsning af Data i en tabel

når du har oprettet din tabel, skal du udfylde den. LOAD DATA ogINSERT udsagn er nyttige til dette.

Antag, at dine kæledyrsposter kan beskrives som vist her. (Bemærk, at vi forventer datoer i 'YYYY-MM-DD' format; dette kan afvige fra det, du er vant til.)

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
bukker Diane hund 1979-08-31 1995-07-29
hirpy GV fugl f 1998-09-11
1997-12-09
slim Benny slange m 1996-04-29

fordi du begynder med en tom tabel, en nem måde at udfylde det på er at oprette en tekstfil, der indeholder en række for hver af dine derefter indlæse indholdet af filen i tabellen med en enkelt erklæring.

Du kan oprette en tekstfil pet.txtindeholdende en post pr.linje med værdier adskilt af faner og givet i den rækkefølge, som kolonnerne blev opført iCREATE TABLE erklæring. For manglende værdier (såsom ukendte køn eller dødsdatoer for dyr, der stadig lever), kan du bruge NULL værdier. For at repræsentere disse i din tekstfil skal du bruge \N (backslash, capital-n). For eksempel vil posten for fløjter fuglen se sådan ud (hvor hvidrummet mellem værdier er et enkelt fanetegn):

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

for at indlæse tekstfilen pet.txt i pet tabel, brug denne erklæring:

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

Hvis du oprettede filen på vinduer med en editor, der bruger \r\n som linjeterminator, skal du bruge denne erklæring i stedet:

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

(på en Apple-maskine, der kører macOS, vil du sandsynligvis bruge LINES TERMINATED BY '\r'.)

Du kan angive kolonneværdiseparatoren og slutningen af linjemarkøren eksplicit iLOAD DATA erklæring, hvis du ønsker det, men standardindstillingerne er fane og linefeed. Disse er tilstrækkelige til, at erklæringen kan læse filen pet.txt korrekt.

Hvis udsagnet mislykkes, er det sandsynligt, at din installation ikke har lokal filfunktion aktiveret som standard. Se Afsnit 6.1.6, “sikkerhedshensyn for LOAD DATA LOCAL”, for at få oplysninger om, hvordan du ændrer dette.

Når du vil tilføje nye poster en ad gangen, erINSERT erklæringen nyttig. I sin enkleste form leverer Du værdier for hver kolonne i den rækkefølge, som kolonnerne blev opført i CREATE TABLE – sætningen. Antag, at Diane får en ny hamster ved navn ” Puffball.”Du kan tilføje en ny post ved hjælp af en INSERT erklæring som denne:

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

streng-og datoværdier er angivet som citerede strenge her. Også med INSERTkan du indsætteNULL direkte for at repræsentere en manglende værdi. Du bruger ikke \Nsom du gør med LOAD DATA.

fra dette eksempel skal du være i stand til at se, at der ville være meget mere indtastning involveret for at indlæse dine poster oprindeligt ved hjælp af flereINSERTudsagn snarere end en enkeltLOAD DATA erklæring.