MySQL bruker "Sett inn" og " laste inn data " uttalelser for å sette inn poster i en database tabell . "Insert " statement laster én post om gangen , mens " LOAD DATA " statement importerer data fra en ekstern tekstfil . Den " laste data " statement leser raskt tekstfilen linje for linje som gjør det mye raskere enn en "SETT INN " når du legger flere poster på en gang . Opprette tekstfil
Hver linje i tekstfilen må tilsvare en post ( rad ) i tabellen . Verdiene for hver kolonne må skilles med en fane og eventuelle null ( manglende ) verdier må være representert ved "\\ N " betegnelse .
For eksempel, hvis du har en tabell som inneholder adressene med kolonnenavn blir fname , lname , staddress , zip, ville du satt opp følgende tekst -filen og lagre den som " addresses.txt "
Kris Miller 301 Anywhere St 17598Steve Fetterhoff 305 St. Elsewhere Ave 17989James Smith 623 Kensington Ct 98 539
filen må være med kolonnene i samme stilling som de er i tabellen . Hvis du er usikker på kolonneoppsettet , kan du skrive kommandoen " DESCRIBE tablename ; " . Erstatt " tablename " med navnet på tabellen .
Loading Data
å laste dataene inn i tabellen , må du først koble til MySQL server , og velg riktig database. Når du kommer til " mysql > "-ledeteksten , vil du skrive inn følgende kommando :
LOAD DATA LOCAL INFILE '/home /user /address.txt ' INTO TABLE adresse ;
nøyaktig bane 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 \\ bruker \\ address.txt " Også , hvis filen ble opprettet av en Windows tekst editor , bør du spesifisere \\ r \\ n terminatoren i LOAD DATA kommandoen med følgende syntaks :
laste data LOKAL INFILE '/home /bruker /adresse . txt ' inn i tabell adresse linjer avsluttes av ' \\ r \\ n ';
Når "mysql >" vises igjen, kan du kontrollere at dataene ble lagt riktig med følgende spørring:
< p > SELECT * FROM adresse; .
Dette søket vil komme tilbake med en komplett rekorden for den "adresse " tabellen formatert i rader og kolonner
laste data Options
LOAD dATA setningen har noen alternativer som vil tillate deg å bruke en alternativ format for tekstfilen og håndtere import av data . Eksemplet ovenfor, bruker den "lokale " alternativet . Dette alternativet sier å se på kundens maskin for filen. Hvis du kobler til en ekstern MySQL server og utelate den "lokale " alternativet , må filen være plassert på MySQL server og vil bli lest direkte fra serveren .
"Erstatte " alternativet sier å erstatte rader med samme primærnøkkel som raden i filen. En primærnøkkel er verdien som unikt identifiserer hver enkelt post i en tabell . Den "Ignore " alternativet sier til hoppe over noen rader som dupliserer en eksisterende rad , basert på den primære nøkkelen . Disse to alternativene er utpekt etter filnavnet og før ordet "til" for eksempel:
LOAD DATA LOCAL INFILE '/home /user /address.txt ' BYTT TIL TABELL adresse;
du kan også angi at feltene skal være atskilt med et annet tegn enn en kategori , for eksempel en kommaseparert verdi ( CSV ) -fil , med " fELT avsluttes av " alternativet. Dette alternativet er spesifisert etter tabellen navn med følgende syntaks :
LOAD DATA LOCAL INFILE ' /home /user /address.txt ' BYTT TIL TABELL adresse FELT avsluttes av ' , ';
du kan finne flere alternativer som kan brukes av " laste inn " statement i MySQL brukerdokumentasjon ( se Ressurser ) .