SQL: Wprowadzanie danych | INSERT
Wprowadzania do tabel danych rozpoczniemy w tej samej kolejności, co ich tworzenie. Czyli od tabel brzegowych, od których nie wychodzą już dalsze powiązania: adres, status_rezerwacji, samolot.
Do wprowadzania danych wykorzystamy polecenie INSERT INTO. Można je wykonać w dwóch odmianach: podając nazwy konkretnych kolumn i wprowadzając do nich wartości (VALUES), bądź bez podawania nazw kolumn, podając wszystkie dane.
INSERT INTO nazwa_tabeli VALUES (watość1,watość2,watość3,...); INSERT INTO nazwa_tabeli (kolumna1,kolumna2,kolumna3,...) VALUES (watość1,watość2,watość3,...);
Różnicę pomiędzy nimi pokażmy na przykładzie:
INSERT INTO status_rezerwacji VALUES(NULL, 'wstepna'); INSERT INTO status_rezerwacji (status) VALUES('wstepna');
W pierwszym przypadku musimy podać wartości wszystkich pól, w tym również pola id, które przyjmuje wartość NULL, a podczas wprowadzenia do tabeli zostanie mu przypisany kolejny numer, o jeden większy od ostatnio wprowadzonego (AUTO_INCREMENT). W drugim podajemy jedynie wymagane wartości wraz z nazwami kolumn. Wprowadźmy zatem kilka wartości:
INSERT INTO status_rezerwacji VALUES(NULL, 'wstepna'); INSERT INTO status_rezerwacji VALUES(NULL, 'nieoplacona'); INSERT INTO status_rezerwacji VALUES(NULL, 'zarezerwowano'); INSERT INTO status_rezerwacji VALUES(NULL, 'archiwalna');
Wyświetlmy aktualną zawartość tabeli status_rezerwacji. Wykorzystamy polecenie SELECT służące do wybierania danych z bazy. Wypiszmy wszystko wykorzystując do tego symbol *.
SELECT * FROM status_rezerwacji; +----+---------------+ | id | status | +----+---------------+ | 1 | wstepna | | 2 | nieoplacona | | 3 | zarezerwowano | | 4 | archiwalna | +----+---------------+
Wprowadźmy dane tabel połączonych ze sobą relacją. Wykorzystajmy fakt, że tabela jest świeżo utworzona, a więc pierwsze wpisy dostaną numery id będące kolejnymi liczbami począwszy od 1.
INSERT INTO adres VALUES(NULL, 'pomorskie', 'lęborski', 'Lębork', 'Marcinkowskiego', '1', NULL); INSERT INTO pasazer VALUES(NULL, 'Jan', 'Kowalski', '66110012121', '66677712345', 'jank@ilovetechnikinformatyk.pl', '1'); INSERT INTO adres VALUES(NULL, 'pomorskie', 'lęborski', 'Lębork', 'Warszawska', '112', NULL); INSERT INTO pasazer VALUES(NULL, 'Jan', 'Nowak', '86110045455', '12312312312', 'jann@ilovetechnikinformatyk.pl', '2'); INSERT INTO adres VALUES(NULL, 'pomorskie', 'lęborski', 'Lębork', 'Pionierów', '997', 999); INSERT INTO pasazer VALUES(NULL, 'Tadeusz', 'Nowak', '46120023232', '45678901332', 'tadzio@ilovetechnikinformatyk.pl', '3');
Wprowadziliśmy adres Jana Kowalskiego do tabeli adres i dodaliśmy samego Jana do tabeli pasażer podając w kluczu obcym (adres_id) numer 1 będący wartością id pola rekordu tabeli adres. Podobnie w dwóch pozostałych przypadkach. Spójrzmy teraz jak wyglądają obie tabele:
+----+-------------+----------+-------------+-----------------+------------+--------------+ | id | wojewodztwo | powiat | miejscowosc | ulica | numer_domu | numer_lokalu | +----+-------------+----------+-------------+-----------------+------------+--------------+ | 1 | pomorskie | lęborski | Lębork | Marcinkowskiego | 1 | NULL | | 2 | pomorskie | lęborski | Lębork | Warszawska | 112 | NULL | | 3 | pomorskie | lęborski | Lębork | Pionierów | 997 | 999 | +----+-------------+----------+-------------+-----------------+------------+--------------+ +----+---------+----------+-------------+-------------+----------------------------------+----------+ | id | imie | nazwisko | pesel | telefon | mail | adres_id | +----+---------+----------+-------------+-------------+----------------------------------+----------+ | 1 | Jan | Kowalski | 66110012121 | 66677712345 | jank@ilovetechnikinformatyk.pl | 1 | | 2 | Jan | Nowak | 86110045455 | 12312312312 | jann@ilovetechnikinformatyk.pl | 2 | | 3 | Tadeusz | Nowak | 46120023232 | 45678901332 | tadzio@ilovetechnikinformatyk.pl | 3 | +----+---------+----------+-------------+-------------+----------------------------------+----------+
Podobnie wypełniamy pozostałe tabele.