Temat: Rodzaje łączeń tabel (JOIN)
W SQL często musimy połączyć dane z kilku tabel, aby uzyskać pełniejszy obraz informacji. Tabele w bazie danych mogą być ze sobą powiązane i przechowywać różne, uzupełniające się dane. Dzięki łączeniom (JOIN) możemy połączyć te dane w jednym zapytaniu, co pozwala nam lepiej zrozumieć całość.
Istnieje kilka głównych rodzajów łączeń (JOIN), które pomagają w elastycznym łączeniu danych z różnych tabel:
Rodzaje JOIN
- INNER JOIN: Zwraca tylko te rekordy, które mają dopasowanie w obu tabelach. Jest to najczęściej używane łączenie, gdy chcemy zobaczyć tylko te dane, które mają odpowiadające sobie wartości w obu tabelach.
Przykład:
SELECT Uczniowie.imie, Uczniowie.nazwisko, Klasy.nazwa
FROM Uczniowie
INNER JOIN Klasy
ON Uczniowie.klasa_id = Klasy.id;
- LEFT JOIN (LEFT OUTER JOIN): Zwraca wszystkie rekordy z lewej tabeli oraz pasujące rekordy z prawej tabeli. Jeśli w prawej tabeli nie ma dopasowania, w wynikach pojawi się
NULL. Używamy tego typu łączenia, gdy chcemy zobaczyć wszystkie dane z lewej tabeli, nawet jeśli nie mają odpowiedników po prawej stronie.
Przykład:
SELECT Uczniowie.imie, Uczniowie.nazwisko, Klasy.nazwa
FROM Uczniowie
LEFT JOIN Klasy
ON Uczniowie.klasa_id = Klasy.id;
- RIGHT JOIN (RIGHT OUTER JOIN): Działa podobnie do
LEFT JOIN, ale zwraca wszystkie rekordy z prawej tabeli oraz pasujące rekordy z lewej tabeli. Jeśli w lewej tabeli nie ma dopasowania, w wynikach pojawi sięNULL. Ten rodzaj łączenia jest rzadziej używany, ale może być przydatny w niektórych sytuacjach.
Przykład:
SELECT Uczniowie.imie, Uczniowie.nazwisko, Klasy.nazwa
FROM Uczniowie
RIGHT JOIN Klasy
ON Uczniowie.klasa_id = Klasy.id;
- FULL JOIN (FULL OUTER JOIN): Zwraca wszystkie rekordy z obu tabel, niezależnie od dopasowania. Jeśli w jednej z tabel nie ma odpowiadającego rekordu, w odpowiednich kolumnach pojawi się
NULL. Dzięki temu łączeniu możemy zobaczyć pełny zestaw danych, nawet jeśli nie wszystkie rekordy mają swoje odpowiedniki.
Przykład:
SELECT Uczniowie.imie, Uczniowie.nazwisko, Klasy.nazwa
FROM Uczniowie
FULL JOIN Klasy
ON Uczniowie.klasa_id = Klasy.id;
Każdy z tych rodzajów JOIN pozwala na różne sposoby łączenia danych, w zależności od tego, czego potrzebujemy. To był ogólny przegląd typów łączeń, a w kolejnych lekcjach dokładniej omówimy każdy z nich, pokazując szczegółowe przykłady, które pomogą Ci zrozumieć, jak i kiedy ich używać.
| Testy przypięte do lekcji | |
|---|---|
| Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się |