Kluczowa różnica: Połączenia w SQL są wykonywane w celu połączenia danych z dwóch różnych tabel. Łączenie wewnętrzne jest warunkiem, który powoduje, że wiersze spełniają klauzulę "gdzie" w "wszystkich tabelach"; mając na uwadze, że połączenie zewnętrzne jest warunkiem, który powoduje, że wiersze spełniają klauzulę "gdzie" w "co najmniej jednym z tabel".
Podczas implementacji łączenia tworzone są tabele tymczasowe oparte na kolumnach. Dla warunków łączenia powinny być zawsze dwie tabele. Te warunki, a następnie połączyć odpowiednie komponenty jednej tabeli z innymi komponentami, i stworzyć zupełnie nową tabelę. Celem tych tabel jest wyodrębnienie znaczących i wymaganych danych lub informacji. W zależności od warunków występują dwa rodzaje połączeń, połączenia wewnętrzne i zewnętrzne.
SQL INNER JOIN Składnia:
SELECT nazwa_kolumny
Z tabeli1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Słowo kluczowe INNER JOIN wybiera wszystkie wiersze z obu tabel, o ile istnieje dopasowanie między kolumnami w obu tabelach.
Wewnętrzne sprzężenia zależą od wyboru projektów bazy danych i charakterystyki. W związku z tym te wewnętrzne połączenia są używane w Equi-Joins i Natural Joins. W Equi Join istnieje specyficzny typ porównania, który służy do wyrównania dwóch podanych tabel. Stąd ta tabela używa predykatu równego. Naturalne join to rodzaj łączenia Equi.
Składnia dla Equi Join jest następująca:
S ELEK *
Z tabeli 1, tabela 2
WHERE table1.coloumn_name = table2.coloumn_name;
Jeśli kolumny w equi-join mają tę samą nazwę, to odpowiednia wersja SQL udostępnia opcjonalną notację skróconą, która może być wyrażona przez konstrukcję USING jako:
WYBIERZ *
FROM table1 INNER JOIN table2 USING (column_name);
Składnia dla łączenia naturalnego jest następująca:
WYBIERZ *
FROM table1 NATURAL JOIN table2;
"Łączenie zewnętrzne" nie wymaga spełnienia warunków dla rekordów. Ten warunek łączenia utrzymuje wszystkie inne rekordy, oprócz nie dopasowanych rekordów. To połączenie jest dalej dystrybuowane w lewych, prawych i pełnych warunkach łączenia zewnętrznego, które są implementowane zgodnie z pożądanymi warunkami i atrybutami tabeli.
Left Outer Join
Słowo kluczowe LEFT JOIN zwraca wszystkie wiersze z lewej tabeli (tabela 1) z pasującymi wierszami w prawej tabeli (tabela 2). Wynik "NULL" po prawej stronie, gdy nie ma dopasowania.
Następuje składnia dla Left Outer Join:
SELECT nazwa_kolumny
Z tabeli1
LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;
Prawe zewnętrzne połączenie
Słowo kluczowe DOŁĄCZ DOŁĄCZ zwraca wszystkie wiersze z prawej tabeli (tabela 2) z pasującymi wierszami w lewej tabeli (tabela 1). Wynik jest NULL po lewej stronie, gdy nie ma dopasowania.
Składnia dla Right Outer Join:
SELECT nazwa_kolumny
Z tabeli1
RIGHT OUTER JOIN table2
ON table1.column_name = table2.column_name;
Pełne połączenie zewnętrzne
Słowo kluczowe FULL OUTER JOIN zwraca wszystkie wiersze z lewej tabeli (tabela1) i prawej tabeli (tabela2). Słowo kluczowe FULL OUTER JOIN łączy wynik LEWEGO i PRAWEGO sprzężenia.
Składnia Full Outer Join to:
SELECT nazwa_kolumny
Z tabeli1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
Porównanie łączenia wewnętrznego i łączenia zewnętrznego:
Wewnętrzne dołączenie | Dołączenie zewnętrzne | |
Podstawowa funkcja | Wewnętrzne sprzężenia są używane do znajdowania pasujących wierszy między 2 tabelami. | Łączenie zewnętrzne zachowuje wiersze tabeli lub obu tabel. |
Istnienie wspólnych zmiennych | Tutaj wspólna zmienna musi obowiązkowo znajdować się w obu tabelach. | W tym przypadku zmienna zależy tylko od pierwszej tabeli, która może ale nie musi występować w drugiej tabeli. |
Zwroty | Złączenie wewnętrzne zwróci tylko wiersze, w których występuje dopasowanie oparte na predykacie łączenia. | Łączenie zewnętrzne zwróci wszystkie wiersze, niezależnie od tego, czy są oparte na dopasowaniu, czy nie, na podstawie predykatu łączenia. |
Przyzwyczajony | Służy do przeglądania rekordów tylko wtedy, gdy rekordy są obecne w obu tabelach. | Służy do przeglądania wszystkich rekordów w jednej tabeli. |
Obowiązuje w | Mają one zastosowanie w: Equi-Join i Naturalne połączenie | Mają one zastosowanie jako: Left Outer Join Prawe zewnętrzne połączenie Pełne połączenie zewnętrzne |