MySQL :: MySQL 5.7 Reference Manual:: 3.3.3 tietojen lataaminen taulukkoon
3.3.3 tietojen lataaminen taulukkoon
kun olet luonut taulukon, sinun täytyy kansoittaa se. Tähän voidaan käyttää LOAD DATA
ja INSERT
lausekkeita.
Oletetaan, että lemmikkisi tiedot voidaan kuvata tässä. (Huomaa, että MySQL odottaa päivämääriä '
muodossa; tämä voi poiketa siitä, mihin olet tottunut.)YYYY-MM-DD
"
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 | dog | 1979-08-31 | 1995-07-29 | |
Chirpy | Gwen | bird | |||
Whistler | Gwen | bird | |||
Slim | Snake |
koska aloitat tyhjällä pöydällä, helppo tapa kansoittaa se on luoda tekstitiedosto, joka sisältää rivin kunkin Eläimet, lataa tiedoston sisältö taulukkoon yhdellä lausumalla.
voit luoda tekstitiedoston pet.txt
, joka sisältää yhden tietueen per rivi, jonka arvot on erotettu välilehdillä ja annettu siinä järjestyksessä, jossa sarakkeet on lueteltu CREATE TABLE
statement. Puuttuville arvoille (kuten tuntemattomille sukupuolille tai vielä elävien eläinten kuolinpäiville) voidaan käyttää NULL
arvoja. Jos haluat esittää nämä tekstitiedostossasi, käytä \N
(backslash, capital-n). Esimerkiksi Whistler the Birdin tietue näyttäisi tältä (jossa arvojen välinen välilyönti on yhden välilehden merkki):
Whistler Gwen bird \N 1997-12-09 \N
ladataksesi tekstitiedoston pet.txt
pet
taulukko, käytä tätä lausetta:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
Jos loit tiedoston Windowsiin muokkaimella, joka käyttää \r\n
rivien terminaattorina, käytä sen sijaan tätä lauseketta:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';
(macOS-käyttöjärjestelmää käyttävässä Apple-koneessa haluat todennäköisesti käyttää LINES TERMINATED BY '\r'
.)
voit määrittää sarakearvon erottimen ja rivinvaihtomerkin eksplisiittisesti LOAD DATA
lausekkeessa, jos haluat, mutta oletukset ovat välilehti ja lineefeed. Nämä riittävät siihen, että lausuma lukee tiedoston pet.txt
oikein.
Jos lausunto epäonnistuu, on todennäköistä, että MySQL-asennuksessasi ei ole oletusarvoisesti paikallista tiedostovalmiutta. KS.kohta 6.1.6, ”Load DATA LOCAL Security Considerations”, Kuinka tätä voidaan muuttaa.
kun haluat lisätä uusia tietueita yksi kerrallaan, INSERT
lausuma on hyödyllinen. Yksinkertaisimmillaan jokaiselle sarakkeelle annetaan arvot siinä järjestyksessä, jossa sarakkeet on lueteltu CREATE TABLE
lausuma. Oletetaan, että Diane saa uuden hamsterin nimeltä ” Puffball.”Voit lisätä uuden tietueen käyttämällä INSERT
lausetta näin:
mysql> INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
merkkijono ja päivämääräarvot on määritelty lainattuina merkkijonoina tässä. Myös INSERT
, voit lisätä NULL
suoraan edustamaan puuttuvaa arvoa. Et käytä \N
kuten LOAD DATA
.
tästä esimerkistä pitäisi nähdä, että tietueiden lataamiseen tarvittaisiin paljon enemmän konekirjoitusta, jossa käytettäisiin aluksi useita INSERT
lausekkeita eikä yhtä LOAD DATA
lauseketta.