MySQL:: MySQL 5.7 Referansehåndbok:: 3.3.3 Laster Data inn i Et Bord

3.3.3 Laster Data Inn i Et Bord

etter at du har opprettet bordet ditt, må du fylle det ut. LOAD DATA ogINSERT setningene er nyttige for dette.

Anta at din pet poster kan beskrives som vist her. (Vær oppmerksom På At MySQL forventer datoer i 'YYYY-MM-DD' format; dette kan avvike fra det du er vant til.)

1979-08-31

benny

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 fugl f 1998-09-11
slank Snake 1996-04-29

fordi du begynner med et tomt bord, en enkel måte å fylle det er å lage en tekstfil som inneholder En Rad for hver av dine dyr, last deretter innholdet i filen inn i tabellen med en enkelt setning.

du kan opprette en tekstfil pet.txt som inneholder en post per linje, med verdier adskilt av faner, og gitt i den rekkefølgen kolonnene ble oppført iCREATE TABLE – setningen. For manglende verdier (for eksempel ukjent kjønn eller dødsdatoer for dyr som fortsatt lever), kan du brukeNULL verdier. For å representere disse i tekstfilen din, bruk \N (backslash, capital-N). For Eksempel vil posten For Whistler fuglen se slik ut (hvor mellomrom mellom verdier er et enkelt tabulatortegn):

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

for å laste inn tekstfilen pet.txt i pet tabell, bruk denne setningen:

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

hvis du opprettet filen på windows med en editor som bruker \r\n som en linjeterminator, bør du bruke denne setningen i stedet:

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

(på en apple-maskin som kjører macos, vil du sannsynligvis bruke LINES TERMINATED BY '\r'.)

du kan angi kolonneverdiseparatoren og slutten av linjemarkøren eksplisitt iLOAD DATA – setningen hvis du ønsker det, men standardverdiene er tab og linefeed. Disse er tilstrekkelig for setningen å lese filenpet.txt riktig.

hvis setningen mislykkes, er Det sannsynlig At MySQL-installasjonen ikke har lokal filfunksjon aktivert som standard. Se Avsnitt 6.1.6 ,» Sikkerhetshensyn for LAST INN DATA LOKALT», for informasjon om hvordan du endrer dette.

når du vil legge til nye poster en om gangen, er INSERT – setningen nyttig. I sin enkleste form oppgir du verdier for hver kolonne, i den rekkefølgen kolonnene ble oppført iCREATE TABLE – setningen. Anta At Diane får en ny hamster som heter » Puffball.»Du kan legge til en ny post ved hjelp av en INSERT setning som dette:

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

Streng-Og datoverdier er angitt som siterte strenger her. Med INSERT kan du også sette inn NULL direkte for å representere en manglende verdi. Du bruker ikke \N som du gjør med LOAD DATA.

Fra dette eksemplet bør du kunne se at det ville være mye mer å skrive involvert for å laste inn postene dine først ved å bruke flere INSERT setninger i stedet for en enkelt LOAD DATA setning.