MySQL :: MySQL 5.7 Reference Manual :: 3.3.3 ładowanie danych do tabeli

3.3.3 ładowanie danych do tabeli

Po utworzeniu tabeli należy ją wypełnić. W tym celu przydatne są poleceniaLOAD DATA IINSERT.

Załóżmy, że Twoje rekordy zwierząt domowych można opisać w sposób pokazany tutaj. (Zauważ, że MySQL oczekuje dat w formacie'YYYY-MM-DD' ; może to różnić się od tego, do czego jesteś przyzwyczajony.)

ćwierkanie

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 pies m 1979-08-31 1995-07-29
Gwen ptak f 1998-09-11
Whistler Gwen Bird 1997-12-09
slim Benny Snake m 1996-04-29

ponieważ zaczynasz od pustej tabeli, łatwy sposób na jej zapełnienie jest utworzenie pliku tekstowego zawierającego wiersz dla każdego z Twoich zwierząt, a następnie załadować zawartość pliku do tabeli za pomocą jednego polecenia.

możesz utworzyć plik tekstowypet.txt zawierający jeden rekord na linię, z wartościami oddzielonymi tabulatorami i podanymi w kolejności, w jakiej kolumny były wymienione w instrukcjiCREATE TABLE. W przypadku brakujących wartości (takich jak nieznana płeć lub daty śmierci zwierząt, które nadal żyją) można użyć wartości NULL. Aby reprezentować je w pliku tekstowym, użyj \N (ukośnik wsteczny, Duże-N). Na przykład rekord Whistler the bird będzie wyglądał tak (gdzie odstęp między wartościami jest pojedynczym znakiem tabulacji):

Whistler Gwen bird \N 1997-12-09 \N

aby załadować plik tekstowy pet.txt do tabeli pet, użyj tej instrukcji:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

Jeśli plik został utworzony w systemie Windows za pomocą edytora, który używa \r\n jako terminatora linii, powinieneś użyć tej instrukcji:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';

(na komputerze Apple z systemem macOS prawdopodobnie chcesz użyć LINES TERMINATED BY '\r'.)

w instrukcji LOAD DATA można jawnie określić separator wartości kolumny i koniec znacznika linii, ale domyślnymi wartościami są tab i linefeed. Są one wystarczające, aby polecenie poprawnie odczytało plik pet.txt.

jeśli instrukcja nie powiedzie się, prawdopodobnie twoja instalacja MySQL nie ma domyślnie włączonej funkcji plików lokalnych. Aby dowiedzieć się, jak to zmienić, patrz punkt 6.1.6 „względy bezpieczeństwa dla LOAD DATA LOCAL”.

gdy chcesz dodawać nowe rekordy pojedynczo, przydatne jest polecenie INSERT. W swojej najprostszej formie podajesz wartości dla każdej kolumny, w kolejności, w jakiej kolumny zostały wymienione w instrukcjiCREATE TABLE. Załóżmy, że Diane dostanie nowego chomika o nazwie „Puffball.”Możesz dodać nowy rekord używając poleceniaINSERT w ten sposób:

mysql> INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

wartości ciągów i Daty są podane jako cytowane ciągi. Ponadto, za pomocą INSERT, możesz wstawić NULL bezpośrednio, aby reprezentować brakującą wartość. Nie używasz \N, jak to robisz z LOAD DATA.

z tego przykładu, powinieneś być w stanie zobaczyć, że będzie dużo więcej wpisywania, aby załadować rekordy początkowo za pomocą kilku instrukcji INSERT, a nie pojedynczej instrukcji LOAD DATA.