Hvordan legge til en haug av MySQL data

November 18  by Eliza

Hvis du har en stor mengde data for å gå inn i MySQL-databasen, og det er allerede i en datafil, kan du overføre data fra den eksisterende datafilen til din MySQL database.

Fordi data i en database er organisert i rader og kolonner, blir tekstfilen leses, må indikere hvor dataene for hver kolonne begynner og slutter og hvor enden av en rad er. Her er hvordan du oppretter tabellen struktur:

  • Kolonner: Å tyde kolonner, skiller en bestemt karakter dataene for hver kolonne. Som standard ser MySQL for et tabulatortegn å skille feltene. Men hvis en fane ikke fungerer for datafilen, kan du velge en annen karakter for å skille feltene og fortelle MySQL som en annen karakter enn den kategorien skiller feltene.
  • Rader: Også som standard, er på slutten av en linje forventet å være slutten av en rad - selv om du kan velge et tegn for å angi slutten av en linje hvis du må. En datafil for en beholdningstabellen kan se slik ut:

Rock <TAB> Classic <TAB> Steely Dan <Tab> Aja <Tab> 10.99
RockTAB> Pop <TAB> Semisonic <Tab> Alt om kjemi <Tab> 11.99
Rock <TAB> Classic <TAB> Beatles <TAB> Abbey Road <Tab> 9.99

En datafil med faner mellom feltene er en tabulatordelt fil. En annen vanlig format er en kommaseparert fil, hvor komma skille feltene. Hvis dataene er i et annet filformat, må du konvertere den til en fil med skilletegn.

Å konvertere data i en annen programvarens filformat til en avgrenset fil, sjekk manualen for den programvaren eller snakk med din lokale ekspert som forstår dataenes nåværende format. Mange programmer, for eksempel Excel, Access og Oracle, la deg ta ut dataene i en fil med skilletegn.

For en tekstfil, kan du være i stand til å konvertere den til avgrenset format ved hjelp av søk og erstatt funksjon av en redaktør eller tekstbehandlingsprogram. For en virkelig plagsom fil, må du kanskje søke hjelp av en ekspert eller en mer erfaren programmerer.

Du kan legge igjen et felt tomt i datafilen ved å inkludere felt separatorer uten data mellom dem. Hvis feltet ikke er definert som NOT NULL, er feltet tomt. Hvis feltet er definert som NOT NULL, lasting av datafilen mislykkes og en feilmelding returneres.

Hvis ett av feltene er en AUTO_INCREMENT felt, for eksempel en SERIE felt, kan du la det stå tomt og MySQL vil sette inn AUTO_INCREMENT verdi. For eksempel inneholder følgende datafilen data som skal lades inn i den kunde tabellen.

Smith, John ,, Austin, TX, 88888 ,,,
, Motsetning, Mary ,, Hage, ID, 99999 ,,,
, Brisling, Jack ,, Pumpkin, NY, 11111 ,,,

Denne datafilen er kommadelt. Hver rad starter med et komma, forlater det første feltet tomt for Kunde-feltet, som er SERIE. Andre felt i raden er også blank og vil være tom i databasen etter at datafilen er lastet.

SQL-setningen som leser data fra en tekstfil er LOAD. Den grunnleggende form av LOAD uttalelsen er

LOAD DATA INFILE "sti / datafilename" INTO TABLE tabellnavn

Uttalelsen laster data fra en tekstfil som ligger på serveren din. Hvis filnavnet ikke inneholder en sti, ser MySQL for datafilen i katalogen der tabellen definisjonsfilen, kalt tablename.frm, er plassert.

Som standard er denne filen plassert i en katalog kalt for databasen, for eksempel en katalog som heter CustomerOrderInformation. Denne katalogen ligger i datakatalogen, som ligger i hoved katalogen der MySQL er installert. For eksempel, hvis filen ble kåret Data.dat, kan LOAD uttalelse lete etter filen på C: \ Program Files \ MySQL \ MySQL Server 5.0 \ data \ CustomerOrderInformation \ Data.dat.

Den grunnleggende form av LOAD uttalelsen kan bli fulgt av valgfrie setninger dersom du ønsker å endre en standardskilletegn. Alternativene er

Felter avsluttet med "tegn"
FELT omsluttet av "tegn"
LINJER avsluttes av "tegn"

Anta at du har datafilen for Kunden bordet, bortsett fra at feltene er atskilt med et komma i stedet for en fane. Navnet på datafilen er customer.dat, og det ligger i samme katalog som databasen. SQL-setningen for å lese data inn i tabellen er

LOAD DATA INFILE "customer.dat" INTO TABLE Kunde
Felter avsluttet med ','

For å bruke LOAD DATA INFILE uttalelse, må MySQL konto har FIL privilegium på serveren vert.

Du kan også laste inn data fra en tekstfil på den lokale datamaskinen ved å bruke ordet LOKALE, som følger:

LOAD DATA LOKAL INFILE "sti / datafilename"
INTO TABLE tabellnavn

Du må ta en bane til filen. Bruker skråstrek for banen, selv på en Windows-maskin, for eksempel "C: /data/datafile1.txt". Hvis du får en feilmelding når du sender denne uttalelsen, kanskje LOKAL ikke være aktivert.

Å se på data som du har lagt - for å være sikker på at det er riktig - bruk en SQL-spørring som henter data fra databasen. Bruk følgende spørring for å se på alle data i tabellen, slik at du kan sjekke det:

SELECT * FROM Kunde