MySQL:: MySQL 5.7 referensmanual:: 3.3.3 laddar Data i en tabell

3.3.3 laddar Data i en tabell

När du har skapat din tabell måste du fylla i den. LOAD DATA ochINSERT uttalanden är användbara för detta.

Antag att dina husdjursposter kan beskrivas som visas här. (Observera att MySQL förväntar sig datum i'YYYY-MM-DD' format; detta kan skilja sig från vad du är van vid.)

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 hund m 1979-08-31 1995-07-29
Chirpy Gwen fågel f 1998-09-11
Whistler Gwen fågel 1997-12-09 slim Benny Snake m 1996-04-29

eftersom du börjar med en tom tabell, är ett enkelt sätt att skapa en fylla det är att skapa en textfil som innehåller en rad för var och en av dina djur, ladda sedan innehållet i filen i tabellen med ett enda uttalande.

Du kan skapa en textfil pet.txt som innehåller en post per rad, med värden åtskilda av flikar och ges i den ordning som kolumnerna listades i CREATE TABLE – satsen. För saknade värden (som okända kön eller dödsdatum för djur som fortfarande lever) kan du använda NULL värden. För att representera dessa i din textfil, använd \N (backslash, capital-N). Till exempel posten för Whistler fågeln skulle se ut så här (där vitområdet mellan värden är ett enda fliktecken):

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

för att ladda textfilen pet.txt I pet tabell, använd detta uttalande:

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

om du skapade filen i Windows med en redigerare som använder \r\n som en radterminator, bör du istället använda detta uttalande:

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

(på en Apple-maskin som kör MacOS skulle du sannolikt vilja använda LINES TERMINATED BY '\r'.)

Du kan ange kolumnvärdesavskiljaren och slutmarkören uttryckligen iLOAD DATA om du vill, men standardvärdena är tab och linefeed. Dessa är tillräckliga för att uttalandet ska kunna läsa filen pet.txt korrekt.

om uttalandet misslyckas är det troligt att din MySQL-installation inte har lokal filfunktion aktiverad som standard. Se avsnitt 6.1.6,” säkerhetsöverväganden för LOAD DATA LOCAL”, för information om hur du ändrar detta.

När du vill lägga till nya poster en i taget ärINSERT – satsen användbar. I sin enklaste form anger du värden för varje kolumn, i den ordning som kolumnerna listades i CREATE TABLE – satsen. Antag att Diane får en ny hamster som heter ” Puffball.”Du kan lägga till en ny post med ett INSERT uttalande så här:

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

sträng-och datumvärden anges som citerade strängar här. Med INSERTkan du också infoga NULL direkt för att representera ett saknat värde. Du använder inte \Nsom du gör med LOAD DATA.

från det här exemplet bör du kunna se att det skulle vara mycket mer att skriva för att ladda dina poster initialt med flera INSERT uttalanden snarare än ett enda LOAD DATA uttalande.