MySQL laste inn data Tutorial

MySQL bruker "Sett inn" og "laste data" utsagn for å sette inn poster i en database tabell. "Sett inn" statement laster en post om gangen, mens "LOAD DATA" statement importerer data fra en ekstern tekstfil. Den "LOAD DATA" statement raskt leser tekstfil linje for linje som gjør det mye raskere enn en "Insert" når du legger flere poster på en gang.

Opprette tekstfilen

Hver linje i tekstfilen må tilsvare en post (rad) i tabellen. Verdiene for hver kolonne skal skilles med en fane og alle null (manglende) verdier må være representert ved "\ N" betegnelse.

For eksempel, hvis du har en tabell som inneholder adressene med kolonnenavnene blir fname, lname, staddress, zip, du ville sette opp følgende tekstfil og lagre den som "addresses.txt"

Kris Miller 301 Anywhere St 17598
Steve Fetterhoff 305 St. Elsewhere Ave 17989
James Smith 623 Kensington Ct 98539

Filen må være med kolonnene i den samme stilling som de er i tabellen. Hvis du er usikker på kolonne layout på, kan du skrive kommandoen "BESKRIVE tabellnavn;". Erstatt "tabellnavn" med navnet på tabellen.

Lasting av data

For å laste data inn i tabellen, må du først koble til MySQL-serveren, og velg riktig database. Når du kommer "mysql>" spørsmål, vil du skrive inn følgende kommando:

LOAD DATA LOCAL INFILE '/home/user/address.txt' INTO TABLE adresse

Den nøyaktige banen til filen må spesifiseres etter ordet "INFILE" og stå i enkle anførselstegn. Eksempelet ovenfor viser en Linux / Unix sti, vil banen for en Windows-maskin være noe sånt som "C:. \ Documents and Settings \ brukernavn \ address.txt \" også, hvis filen ble opprettet med en Windows tekst editor, du bør spesifisere \ r \ n terminatoren i LOAD DATA kommandoen med følgende syntaks:

LOAD DATA LOCAL INFILE '/home/user/address.txt' inn i tabell adresselinjer avsluttet med '\ r \ n'

Når \ "mysql> \" meldingen vises igjen, kan du sjekke at dataene ble riktig lastet med følgende spørring:

SELECT * FROM adresse

Dette søket vil komme tilbake med fullstendig oversikt sett for \ "adresse \" table formatert i rader og kolonner.

LOAD DATA Alternativer

LOAD DATA uttalelsen har noen alternativer som vil tillate deg å bruke et alternativt format for tekstfilen og håndtere import av data. Eksempelet ovenfor, bruker \ "Local \" alternativet. Dette alternativet sier å se på klientmaskinen for filen. Hvis du kobler til en ekstern MySQL server og utelate \ "Local \" alternativet, må filen være plassert på MySQL server og vil bli lest direkte fra serveren.

Alternativet "erstatte" sier å erstatte radene med den samme primærnøkkel som raden i filen. En primærnøkkel er verdien som identifiserer hver enkelt post i en tabell. Alternativet "ignore" sier å hoppe over noen rader som dupliserer en eksisterende rad, basert på primærnøkkelen. Disse to alternativene er utpekt etter filnavnet og før ordet "INTO", slik som:

LOAD DATA LOCAL INFILE '/home/user/address.txt "BYTT TIL TABELL adresse

Du kan også angi at feltene vil bli atskilt av en annen enn en fane karakter, slik som en kommaseparert fil (CSV), med "Felter avsluttet med" alternativet. Dette alternativet er spesifisert etter tabellnavnet med følgende syntaks:

LOAD DATA LOCAL INFILE '/home/user/address.txt' BYTT INTO TABLE-post Felter avsluttet med ','

Du kan finne flere alternativer som kan brukes av "laste inn" statement i MySQL brukerdokumentasjonen (se Ressurser).