niedziela, 2 września 2018

SQL - Korzystanie z połączeń


SQL - Korzystanie z połączeń

Klauzula SQL Joins służy do łączenia rekordów z dwóch lub więcej tabel w bazie danych. JOIN jest środkiem do łączenia pól z dwóch tabel przy użyciu wspólnych wartości.
Rozważ następujące dwie tabele -
Tabela 1 - Tabela KLIENCI
+----+----------+-----+-----------+----------+
id,   nazwisko,   wiek,  adres,        pensja
'1', 'Zawadzki',  '32', 'Warszawska', '2000.00'
'2', 'Kowalczyk', '25', 'Sokratesa',  '1500.00'
'3', 'Kot',       '23', 'Darwina',    '3500.00'
'4', 'Kowalska',  '25', 'Modlińska',  '6500.00'
'5', 'Sapal',     '27', 'Wspólna',    '8500.00'
'6', 'Nowak',     '22', 'Nalewki',    '4500.00'
'7', 'Makowska',  '24', 'Piaseczno',  '10000.00'
+----+----------+-----+-----------+----------+

Tabela 2 - Tabela zamówienia
+----+----------+-----+-----------+----------+
z_id, data,        klient_id, wartosc
'1', '2018-02-02', '3',      '1200.00'
'2', '2018-03-02', '4',      '1800.00'
'3', '2018-03-08', '5',      '2800.00'
'4', '2018-04-08', '1',      '2500.00'
+----+----------+-----+-----------+----------+

Teraz, dołączmy te dwie tabele do naszej instrukcji SELECT, jak pokazano poniżej.
SQL> SELECT ID, NAZWISKO, WIEK, WARTOSC
   FROM KLIENCI, ZAMOWIENIA
   WHERE  KLIENCI.ID = ZAMOWINIA.KIENT_ID;
Dałoby to następujący wynik.
+----+----------+-----+--------+
 id,  nazwisko,   wiek, wartosc
'3', 'Kot',      '23', '1200.00'
'4', 'Kowalska', '25', '1800.00'
'5', 'Sapal',    '27', '2800.00'
'1', 'Zawadzki', '32', '2500.00'
+----+----------+-----+--------+
Tutaj zauważalne jest, że sprzężenie jest wykonywane w klauzuli WHERE. Do łączenia tabel można użyć kilku operatorów, takich jak =, <,>, <>, <=,> =,! =, BETWEEN, LIKE i NOT; wszystkie mogą być używane do łączenia tabel. Jednak najpopularniejszym operatorem jest symbol równości.
Dostępne są różne typy złączeń w SQL-ie
·      INNER JOIN - zwraca wiersze, gdy występuje dopasowanie w obu tabelach.
·  LEFT JOIN - zwraca wszystkie wiersze z lewej tabeli, nawet jeśli nie ma odpowiedników w prawej tabeli.
·      RIGHT JOIN - zwraca wszystkie wiersze z prawej tabeli, nawet jeśli nie ma żadnych dopasowań w lewej tabeli.
·      FULL JOIN - zwraca wiersze, gdy występuje dopasowanie w jednej z tabel.
·      SELF JOIN - służy do łączenia tabeli ze sobą tak, jakby tabela była dwiema tabelami, tymczasowo zmieniając nazwy przynajmniej jednej tabeli w instrukcji SQL.
·      CARTESIAN JOIN - zwraca iloczyn kartezjański zbiorów rekordów z dwóch lub więcej połączonych tabel.


Brak komentarzy:

Prześlij komentarz