Bazy danych | Język SQL - Wprowadzanie danych · Technik informatyk egzamin zawodowy

Programowanie / Bazy danych

Bazy danych | Język SQL - Wprowadzanie danych

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.