Co to jest Dołącz w DBMS?
Join w DBMS to operacja binarna, która pozwala łączyć produkt i wybór w jednej instrukcji. Celem tworzenia warunku łączenia jest ułatwienie łączenia danych z dwóch lub więcej tabel DBMS. Tabele w DBMS są powiązane przy użyciu klucza podstawowego i kluczy obcych.
W tym samouczku DBMS dowiesz się:
- Rodzaje połączeń
- Połączenie wewnętrzne
- Dołącz do Theta
- Dołącz do EQUI:
- Połączenie naturalne (⋈)
- Połączenie zewnętrzne
- Lewe połączenie zewnętrzne (A B)
- Prawe połączenie zewnętrzne (A B)
- Pełne połączenie zewnętrzne (A B)
Rodzaje połączeń
W DBMS istnieją głównie dwa typy sprzężeń:
- Połączenia wewnętrzne: Theta, Natural, EQUI
- Połączenie zewnętrzne: lewe, prawe, pełne
Zobaczmy je szczegółowo:
Połączenie wewnętrzne
INNER JOIN służy do zwracania wierszy z obu tabel, które spełniają zadany warunek. Jest to najczęściej używana operacja łączenia i może być traktowana jako domyślny typ łączenia
Sprzężenie wewnętrzne lub equijoin to sprzężenie oparte na komparatorach, które wykorzystuje porównania równości w predykacie łączenia. Jeśli jednak używasz innych operatorów porównania, takich jak „>”, nie można go nazwać equijoin.
Łączenie wewnętrzne podzielone dalej na trzy podtypy:
- Dołącz do Theta
- Naturalne połączenie
- EQUI dołącz
Dołącz do Theta
THETA JOIN umożliwia połączenie dwóch tabel na podstawie warunku reprezentowanego przez theta. Theta łączy pracę dla wszystkich operatorów porównania. Jest oznaczony symbolem θ . Ogólny przypadek operacji JOIN nazywa się złączeniem Theta.
Składnia:
A ⋈θ B
Łączenie theta może używać dowolnych warunków w kryteriach wyboru.
Rozważ poniższe tabele.
Tabela A | Tabela B. | |||
kolumna 1 | kolumna 2 | kolumna 1 | kolumna 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Na przykład:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A kolumna 2> B. kolumna 2 (B) | |
kolumna 1 | kolumna 2 |
1 | 2 |
EQUI Dołącz
EQUI JOIN jest wykonywane, gdy sprzężenie Theta używa tylko warunku równoważności. Łączenie EQUI jest najtrudniejszą operacją do efektywnego wdrożenia w RDBMS i jednym z powodów, dla których RDBMS mają istotne problemy z wydajnością.
Na przykład:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A kolumna 2 = B. kolumna 2 (B) | |
kolumna 1 | kolumna 2 |
1 | 1 |
Połączenie naturalne (⋈)
NATURAL JOIN nie wykorzystuje żadnego z operatorów porównania. W tego typu złączeniach atrybuty powinny mieć tę samą nazwę i domenę. W łączeniu naturalnym powinien istnieć co najmniej jeden wspólny atrybut między dwiema relacjami.
Dokonuje selekcji tworzącej równość na tych atrybutach, które pojawiają się w obu relacjach i eliminuje zduplikowane atrybuty.
Przykład:
Rozważ dwie poniższe tabele
do | |
Num | Plac |
2 | 4 |
3 | 9 |
re | |
Num | Sześcian |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
Num | Plac | Sześcian |
2 | 4 | 8 |
3 | 9 | 18 |
Połączenie zewnętrzne
OUTER JOIN nie wymaga każdy rekord w dwóch łączenia tabel mieć pasujący rekord. W przypadku tego typu łączenia tabela zachowuje każdy rekord, nawet jeśli nie istnieje żaden inny zgodny rekord.
Trzy typy połączeń zewnętrznych to:
- Lewe połączenie zewnętrzne
- Prawe połączenie zewnętrzne
- Pełne połączenie zewnętrzne
Lewe połączenie zewnętrzne (A B)
LEFT JOIN zwraca wszystkie wiersze z tabeli po lewej stronie, nawet jeśli w tabeli po prawej stronie nie znaleziono pasujących wierszy. Jeśli w tabeli po prawej stronie nie znaleziono pasującego rekordu, zwracana jest wartość NULL.
Rozważ następujące 2 tabele
ZA | |
Num | Plac |
2 | 4 |
3 | 9 |
4 | 16 |
b | |
Num | Sześcian |
2 | 8 |
3 | 18 |
5 | 75 |
A B
A ⋈ B | ||
Num | Plac | Sześcian |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Prawe połączenie zewnętrzne (A B)
RIGHT JOIN zwraca wszystkie kolumny z tabeli po prawej stronie, nawet jeśli w tabeli po lewej stronie nie znaleziono pasujących wierszy. Jeśli w tabeli po lewej stronie nie znaleziono żadnych dopasowań, zwracana jest wartość NULL. PRAWY zewnętrzny JOIN jest przeciwieństwem LEFT JOIN
W naszym przykładzie załóżmy, że potrzebujesz nazwisk członków i wypożyczonych przez nich filmów. Teraz mamy nowego członka, który nie wypożyczył jeszcze żadnego filmu.
A B
A ⋈ B | ||
Num | Sześcian | Plac |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Pełne połączenie zewnętrzne (A B)
W FULL OUTER JOIN wszystkie krotki z obu relacji są uwzględniane w wyniku, niezależnie od warunku dopasowania.
Przykład:
A B
A ⋈ B | ||
Num | Plac | Sześcian |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Podsumowanie:
- W DBMS istnieją głównie dwa typy złączeń 1) Połączenie wewnętrzne 2) Połączenie zewnętrzne
- Łączenie wewnętrzne jest szeroko stosowaną operacją łączenia i może być traktowane jako domyślny typ łączenia.
- Łączenie wewnętrzne dzieli się dalej na trzy podtypy: 1) Łączenie Theta 2) Łączenie naturalne 3) Łączenie EQUI
- Theta Join umożliwia połączenie dwóch tabel na podstawie warunku reprezentowanego przez theta
- Gdy złączenie theta używa tylko warunku równoważności, staje się złączeniem equi.
- Sprzężenie naturalne nie wykorzystuje żadnego z operatorów porównania.
- Sprzężenie zewnętrzne nie wymaga, aby każdy rekord w dwóch tabelach łączenia miał pasujący rekord.
- Łączenie zewnętrzne jest dalej podzielone na trzy podtypy: 1) Łączenie zewnętrzne lewe 2) Łączenie zewnętrzne prawe 3) Łączenie pełne zewnętrzne
- LEWE zewnętrzne sprzężenie zwraca wszystkie wiersze z tabeli po lewej stronie, nawet jeśli w tabeli po prawej stronie nie znaleziono pasujących wierszy.
- RIGHT Outer Join zwraca wszystkie kolumny z tabeli po prawej stronie, nawet jeśli w tabeli po lewej stronie nie znaleziono pasujących wierszy.
- W przypadku pełnego sprzężenia zewnętrznego wszystkie krotki z obu relacji są uwzględniane w wyniku, niezależnie od warunku dopasowania.