Łączenie tabel
Łączenie tabel umożliwia odczytywanie danych z wielu tabel jednocześnie. Tabele zostają połączone pomiędzy kluczem podstawowym jednej tabeli, a kluczem obcym drugiej (klucz obcy to kolumna, która stanowi klucz podstawowy w innej tabeli). Połączenia tabel dzielą się na wewnętrzne i zewnętrzne.
Połączenia wewnętrzne są realizowane przy pomocy instrukcji INNER JOIN, która wybiera rekordy posiadające takie same wartości w obu tabelach. Jej składnia wygląda następująco:
tabela1 INNER JOIN tabela2 ONtabela1.kolumna1=tabela2.kolumna2
Przykładowo, wypisanie idZamowienia z tabeli zamowienia i nazwa_klienta z tabeli klienci:
SELECT zamowienia.idZamowienia, klienci.nazwa_klienta FROM zamowienia INNER JOIN klienci ON zamowienia.idKlienta = klienci.IdKlienta;
Połączenia zewnętrzne definiuje się za pomocą poleceń:
LEFT OUTER JOIN – zwraca wszystkie wiersze z pierwszej tabeli i pasujące wierszej z drugiej
RIGHT OUTER JOIN – zwraca wszystkie wiersze z drugiej tabeli i pasujące wierszej z pierwszej
FULL OUTER JOIN – zwraca wszystkie pasujące i niepasujące wiersze z obu tabel
Przykładowo:Wypisanie nazwy klientów z tabeli klienci i identyfikatorów zamówień z tabeli zamowienia
SELECT zamowienia.IdZamowienia, pracownicy.nazwisko, pracownicy.imie FROM zamowienia RIGHT OUTER JOIN pracownicy ON zamowienia.IdPracownika = pracownicy.IdPracownika ORDER BY zamowienia.IdZamowienia;
Wypisanie nazwy klientów z tabeli klienci i identyfikatorów zamówień z tabeli zamowienia
SELECT klienci.nazwa_klienta, zamowienia.IdZamowienia FROM Klienci FULL OUTER JOIN zamowienia ON klienci.IdKlienta=zamowienia.IdKlienta ORDER BY Klienci.nazwa_klienta;
Więzy integralności
Więzy integralności między tabelami tworzy się w celu automatycznego sprawdzania przez serwer poprawności dokonywanych wpisów, co w efekcie niweluje błędy, jakie można popełnić przy wprowadzaniu nowych danych. W tym celu konieczne jest utworzenie klucza obcego za pomocą polecenia:
ALTER TABLE tabela1 ADD FOREIGN KEY (kolumna1) REFERENCES tabela2(kolumna2);
Przykładowo, dodanie klucza obcego na kolumnie IdKlienta w tabeli zamowienia połączonego z kluczem podstawowym – kolumną IdKlienta w tabeli klienci:
ALTER TABLE zamowienia ADD FOREIGN KEY (IdKlienta) REFERENCES klienci(IdKlienta);
Autor tekstu: Filip Kmiecik