Cos'è Join in DBMS?
Join in DBMS è un'operazione binaria che consente di combinare unire prodotto e selezione in un'unica istruzione. L'obiettivo della creazione di una condizione di join è che ti aiuti a combinare i dati di due o più tabelle DBMS. Le tabelle in DBMS vengono associate utilizzando la chiave primaria e le chiavi esterne.
In questo tutorial DBMS imparerai:
- Tipi di join
- Inner Join
- Theta Join
- EQUI aderisce:
- Natural Join (⋈)
- Outer Join
- Join esterno sinistro (A
B)
- Giunzione esterna destra (A
B)
- Unione esterna completa (A
B)
Tipi di join
Esistono principalmente due tipi di join in DBMS:
- Unioni interne: Theta, Natural, EQUI
- Unione esterna: sinistra, destra, completa
Vediamoli in dettaglio:
Inner Join
INNER JOIN viene utilizzato per restituire righe da entrambe le tabelle che soddisfano la condizione data. È l'operazione di join più utilizzata e può essere considerata un tipo di join predefinito
Un join interno o equijoin è un join basato sul confronto che utilizza confronti di uguaglianza nel predicato di join. Tuttavia, se utilizzi altri operatori di confronto come ">" non puoi chiamarlo equijoin.
Inner Join ulteriormente suddiviso in tre sottotipi:
- Theta si unisce
- Unione naturale
- EQUI si unisce
Theta Join
THETA JOIN consente di unire due tabelle in base alla condizione rappresentata da theta. Theta unisce il lavoro per tutti gli operatori di confronto. È indicato dal simbolo θ . Il caso generale dell'operazione JOIN è chiamato join Theta.
Sintassi:
A ⋈θ B
Il join theta può utilizzare qualsiasi condizione nei criteri di selezione.
Considera le seguenti tabelle.
Tabella A | Tabella B | |||
colonna 1 | colonna 2 | colonna 1 | colonna 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Per esempio:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. colonna 2> B. colonna 2 (B) | |
colonna 1 | colonna 2 |
1 | 2 |
EQUI Join
EQUI JOIN viene eseguito quando un join Theta utilizza solo la condizione di equivalenza. EQUI join è l'operazione più difficile da implementare in modo efficiente in un RDBMS e uno dei motivi per cui RDBMS ha problemi di prestazioni essenziali.
Per esempio:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. colonna 2 = B. colonna 2 (B) | |
colonna 1 | colonna 2 |
1 | 1 |
Natural Join (⋈)
NATURAL JOIN non utilizza nessuno degli operatori di confronto. In questo tipo di join, gli attributi dovrebbero avere lo stesso nome e dominio. In Natural Join, dovrebbe esserci almeno un attributo comune tra due relazioni.
Esegue la selezione formando l'uguaglianza su quegli attributi che appaiono in entrambe le relazioni ed elimina gli attributi duplicati.
Esempio:
Considera le seguenti due tabelle
C | |
Num | Piazza |
2 | 4 |
3 | 9 |
D | |
Num | Cubo |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
Num | Piazza | Cubo |
2 | 4 | 8 |
3 | 9 | 18 |
Outer Join
Un OUTER JOIN non richiede che ogni record nelle due tabelle di join abbia un record corrispondente. In questo tipo di join, la tabella conserva ogni record anche se non esistono altri record corrispondenti.
Tre tipi di Outer Join sono:
- Join esterno sinistro
- Right Outer Join
- Join esterno completo
Join esterno sinistro (A
B)
LEFT JOIN restituisce tutte le righe della tabella a sinistra anche se non sono state trovate righe corrispondenti nella tabella a destra. Quando non viene trovato alcun record corrispondente nella tabella a destra, viene restituito NULL.
Considera le seguenti 2 tabelle
UN | |
Num | Piazza |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
Num | Cubo |
2 | 8 |
3 | 18 |
5 | 75 |
AB
A ⋈ B | ||
Num | Piazza | Cubo |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Giunzione esterna destra (A
B)
RIGHT JOIN restituisce tutte le colonne della tabella a destra anche se non sono state trovate righe corrispondenti nella tabella a sinistra. Dove non sono state trovate corrispondenze nella tabella a sinistra, viene restituito NULL. RIGHT outer JOIN è l'opposto di LEFT JOIN
Nel nostro esempio, supponiamo che sia necessario ottenere i nomi dei membri e dei film da loro noleggiati. Ora abbiamo un nuovo membro che non ha ancora noleggiato nessun film.
AB
A ⋈ B | ||
Num | Cubo | Piazza |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Unione esterna completa (A
B)
In un FULL OUTER JOIN , tutte le tuple di entrambe le relazioni sono incluse nel risultato, indipendentemente dalla condizione di corrispondenza.
Esempio:
AB
A ⋈ B | ||
Num | Piazza | Cubo |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Sommario:
- Esistono principalmente due tipi di join in DBMS 1) Inner Join 2) Outer Join
- Un join interno è l'operazione di join ampiamente utilizzata e può essere considerato come un tipo di join predefinito.
- Inner Join è ulteriormente suddiviso in tre sottotipi: 1) Theta join 2) Natural join 3) EQUI join
- Theta Join consente di unire due tabelle in base alla condizione rappresentata da theta
- Quando un join theta utilizza solo condizioni di equivalenza, diventa un equi join.
- Natural join non utilizza nessuno degli operatori di confronto.
- Un join esterno non richiede che ogni record nelle due tabelle di join disponga di un record corrispondente.
- Il join esterno è ulteriormente suddiviso in tre sottotipi: 1) Join esterno sinistro 2) Join esterno destro 3) Join esterno completo
- Il LEFT Outer Join restituisce tutte le righe della tabella a sinistra, anche se non sono state trovate righe corrispondenti nella tabella a destra.
- Il RIGHT Outer Join restituisce tutte le colonne della tabella a destra, anche se non sono state trovate righe corrispondenti nella tabella a sinistra.
- In un join esterno completo, tutte le tuple di entrambe le relazioni vengono incluse nel risultato, indipendentemente dalla condizione di corrispondenza.