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 'YYYY-MM-DD' formátumban vár dátumokat; ez eltérhet attól, amit szokott.)

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 \NLOAD 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.