Wat is Join in DBMS?
Join in DBMS is een binaire bewerking waarmee u product en selectie kunt combineren in één enkele instructie. Het doel van het maken van een join-voorwaarde is dat het u helpt om de gegevens van twee of meer DBMS-tabellen te combineren. De tabellen in DBMS zijn gekoppeld met behulp van de primaire sleutel en externe sleutels.
In deze DBMS-zelfstudie leert u:
- Soorten Join
- Innerlijke verbinding
- Theta Join
- EQUI toetreden:
- Natuurlijke verbinding (⋈)
- Outer Join
- Linker buitenste verbinding (A B)
- Rechter buitenste verbinding (A B)
- Volledige buitenste verbinding (A B)
Soorten Join
Er zijn hoofdzakelijk twee soorten joins in DBMS:
- Innerlijke joins: Theta, Natural, EQUI
- Outer Join: Links, Rechts, Volledig
Laten we ze in detail bekijken:
Innerlijke verbinding
INNER JOIN wordt gebruikt om rijen uit beide tabellen te retourneren die aan de gegeven voorwaarde voldoen. Het is de meest gebruikte join-bewerking en kan worden beschouwd als een standaard join-type
Een Inner join of equijoin is een op comparator gebaseerde join die gelijkheidsvergelijkingen gebruikt in het join-predikaat. Als u echter andere vergelijkingsoperatoren zoals ">" gebruikt, kan deze geen equijoin worden genoemd.
Inner Join verder onderverdeeld in drie subtypen:
- Theta sluit zich aan
- Natuurlijk meedoen
- EQUI doe mee
Theta Join
Met THETA JOIN kun je twee tabellen samenvoegen op basis van de conditie die wordt voorgesteld door theta. Theta voegt zich bij het werk voor alle vergelijkingsoperatoren. Het wordt aangeduid met symbool θ . Het algemene geval van de JOIN-bewerking wordt een Theta-join genoemd.
Syntaxis:
A ⋈θ B
Theta join kan alle voorwaarden in de selectiecriteria gebruiken.
Beschouw de volgende tabellen.
Tabel A | Tabel B | |||
kolom 1 | kolom 2 | kolom 1 | kolom 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Bijvoorbeeld:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. kolom 2> B. kolom 2 (B) | |
kolom 1 | kolom 2 |
1 | 2 |
EQUI Join
EQUI JOIN wordt gedaan als een Theta-join alleen de equivalentievoorwaarde gebruikt. EQUI-join is de moeilijkste bewerking om efficiënt in een RDBMS te implementeren, en een reden waarom RDBMS essentiële prestatieproblemen heeft.
Bijvoorbeeld:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. kolom 2 = B. kolom 2 (B) | |
kolom 1 | kolom 2 |
1 | 1 |
Natuurlijke verbinding (⋈)
NATURAL JOIN maakt geen gebruik van een van de vergelijkingsoperatoren. Bij dit type join moeten de attributen dezelfde naam en hetzelfde domein hebben. In Natural Join moet er ten minste één gemeenschappelijk kenmerk zijn tussen twee relaties.
Het voert selectie uit die gelijkheid vormt op die attributen die in beide relaties voorkomen en elimineert de dubbele attributen.
Voorbeeld:
Beschouw de volgende twee tabellen
C | |
Num | Vierkant |
2 | 4 |
3 | 9 |
D | |
Num | Kubus |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
Num | Vierkant | Kubus |
2 | 4 | 8 |
3 | 9 | 18 |
Outer Join
Een OUTER JOIN vereist niet dat elk record in de twee join-tabellen een overeenkomend record heeft. Bij dit type join behoudt de tabel elk record, zelfs als er geen ander overeenkomend record bestaat.
Drie soorten Outer Joins zijn:
- Linker Outer Join
- Rechts buitenste verbinding
- Volledige Outer Join
Linker buitenste verbinding (A B)
LEFT JOIN retourneert alle rijen uit de tabel aan de linkerkant, zelfs als er geen overeenkomende rijen zijn gevonden in de tabel aan de rechterkant. Als er geen overeenkomend record wordt gevonden in de tabel aan de rechterkant, wordt NULL geretourneerd.
Beschouw de volgende 2 tabellen
EEN | |
Num | Vierkant |
2 | 4 |
3 | 9 |
4 | 16 |
B. | |
Num | Kubus |
2 | 8 |
3 | 18 |
5 | 75 |
A B
A ⋈ B | ||
Num | Vierkant | Kubus |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | |
Rechter buitenste verbinding (A B)
RIGHT JOIN retourneert alle kolommen uit de tabel aan de rechterkant, zelfs als er geen overeenkomende rijen zijn gevonden in de tabel aan de linkerkant. Als er geen overeenkomsten zijn gevonden in de tabel aan de linkerkant, wordt NULL geretourneerd. RIGHT outer JOIN is het tegenovergestelde van LEFT JOIN
Laten we in ons voorbeeld aannemen dat u de namen van leden en door hen gehuurde films nodig heeft. Nu hebben we een nieuw lid die nog geen film heeft gehuurd.
A B
A ⋈ B | ||
Num | Kubus | Vierkant |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | |
Volledige buitenste verbinding (A B)
In een FULL OUTER JOIN worden alle tupels van beide relaties in het resultaat opgenomen, ongeacht de overeenkomende voorwaarde.
Voorbeeld:
A B
A ⋈ B | ||
Num | Vierkant | Kubus |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | |
5 | | 75 |
Overzicht:
- Er zijn hoofdzakelijk twee soorten joins in DBMS 1) Inner Join 2) Outer Join
- Een inner join is de veelgebruikte join-bewerking en kan worden beschouwd als een standaard join-type.
- Inner Join is verder onderverdeeld in drie subtypen: 1) Theta-join 2) Natuurlijke join 3) EQUI-join
- Met Theta Join kunt u twee tabellen samenvoegen op basis van de conditie die wordt weergegeven door theta
- Wanneer een theta-join alleen de equivalentievoorwaarde gebruikt, wordt het een equi-join.
- Natural join maakt geen gebruik van een van de vergelijkingsoperatoren.
- Een outer join vereist niet dat elk record in de twee join-tabellen een overeenkomend record heeft.
- Outer Join is verder onderverdeeld in drie subtypen: 1) Left Outer Join 2) Right Outer Join 3) Full Outer Join
- De LINKER Outer Join retourneert alle rijen van de tabel aan de linkerkant, zelfs als er geen overeenkomende rijen zijn gevonden in de tabel aan de rechterkant.
- De RIGHT Outer Join retourneert alle kolommen uit de tabel aan de rechterkant, zelfs als er geen overeenkomende rijen zijn gevonden in de tabel aan de linkerkant.
- In een volledige outer join worden alle tupels van beide relaties in het resultaat opgenomen, ongeacht de matchconditie.