MySQL :: MySQL 5.7 Referencia-Kézikönyv :: 3.3.3 Terhelési Adatok táblázatba
3.3.3 Terhelési Adatok táblázatba
létrehozása Után a táblázat, meg kell, hogy feltölti rá. Ehhez aLOAD DATA
ésINSERT
nyilatkozatok hasznosak.
tegyük fel, hogy a kedvtelésből tartott állatok nyilvántartása az itt látható módon írható le. (Vegye figyelembe, hogy a MySQL '
formátumban vár dátumokat; ez eltérhet attól, amit szokott.)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 | kutya | m | 1979-08-31 | 1995-07-29 |
Jókedvű | Gwen | madár, | – f | 1998-09-11 | |
Whistler | Gwen | madár, | 1997-12-09 | ||
Slim | Benny | kigyó | m | 1996-04-29 |
Mert te vagy a kezdet, egy üres asztal, egy egyszerű módja annak, hogy feltölti az, hogy hozzon létre egy szöveges fájl, amely egy-egy sorban a állatok, majd töltse be a fájl tartalmát a táblázatba egyetlen nyilatkozattal.
létrehozhat egypet.txt
szöveges fájlt, amely soronként egy rekordot tartalmaz, lapok által elválasztott értékekkel, és az oszlopok felsorolásának sorrendjében megadva aCREATE TABLE
utasítás. Hiányzó értékek (például ismeretlen nemek vagy még élő állatok halálának dátuma) esetén a NULL
értékeket használhatja. A szöveges fájlban ezek megjelenítéséhez használja a \N
(backslash, capital-N) értéket. Például, a rekord Whistler a madár nézne ki (ahol az üres értékek közötti egyetlen lap karakter):
Whistler Gwen bird \N 1997-12-09 \N
betölteni a szöveges fájl pet.txt
a pet
asztal, használja ezt a kijelentést:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
Ha létre a fájlt a Windows egy szerkesztő, hogy használja a \r\n
, mint egy vonal terminátor, akkor érdemes használni ezt a nyilatkozatot helyett:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';
(Apple gépen futó macOS, te valószínűleg azt akarják, hogy használjuk a LINES TERMINATED BY '\r'
.)
aLOAD DATA
parancsban kifejezetten megadhatja az oszlopérték-elválasztót és a sorjelző végét, de az alapértékek a tab és a linefeed. Ezek elegendőek ahhoz, hogy a nyilatkozat megfelelően olvassa el a pet.txt
fájlt.
Ha a nyilatkozat sikertelen, valószínű, hogy a MySQL telepítése alapértelmezés szerint nem engedélyezi a helyi fájlképességet. Lásd a 6.1.6. szakaszt, “Biztonsági megfontolások A LOAD DATA LOCAL-hoz”, a változással kapcsolatos információkért.
ha egyszerre szeretne új rekordokat hozzáadni, a INSERT
utasítás hasznos. A legegyszerűbb formában minden oszlophoz értékeket ad meg, abban a sorrendben, amelyben az oszlopokat a CREATE TABLE
utasítás sorolta fel. Tegyük fel, hogy Diane kap egy új hörcsög nevű ” Puffball.”Új rekordot adhat hozzá egy INSERT
ilyen kijelentéssel:
mysql> INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
a karakterláncok és a dátumértékek itt megadott karakterláncokként vannak megadva. Továbbá, a INSERT
, akkor helyezze NULL
közvetlenül, hogy képviselje a hiányzó értéket. Ne használja a \N
LOAD DATA
értéket.
ebből a példából látnia kell, hogy sokkal több gépelés lenne a rekordok betöltéséhez, kezdetben több INSERT
állítással, nem pedig egyetlen LOAD DATA
állítással.