Jointures SGBD : types de jointures THETA, interne, externe et d'égalité
⚡ Résumé intelligent
Dans un SGBD, une jointure est une opération binaire qui combine les lignes de deux tables ou plus en utilisant leurs clés primaires et étrangères. On distingue deux types de jointures : les jointures internes, qui ne conservent que les lignes correspondantes, et les jointures externes, qui conservent les lignes non correspondantes et remplacent les valeurs manquantes par des valeurs nulles.

Qu'est-ce qu'une jointure dans un SGBD ?
Rejoignez le SGBD Il s'agit d'une opération binaire qui permet de combiner un produit de jointure et une sélection dans une seule instruction. L'objectif d'une condition de jointure est de combiner les données de deux tables ou plus. Les tables sont associées à l'aide de leurs clés primaires. clés étrangères.
Types de jointure
Il existe principalement deux types de jointures dans les SGBD :
- Jointures internes : Thêta, Naturelle, EQUI
- Joints extérieurs : Gauche, Droite, Complet
Le tableau ci-dessous présente un aperçu de tous les types de jointure avant que chacun ne soit expliqué par un exemple.
| Joignez-vous au | Retours de produits | Lignes non appariées |
|---|---|---|
| Intérieur (Theta / ÉQUI / Naturel) | Lignes correspondant à la condition dans les deux tableaux | Abandonnés |
| Extérieur gauche | Toutes les rangées de gauche plus les correspondances | Conservé à gauche, nul à droite |
| Extérieur droit | Toutes les lignes de droite plus les correspondances | Conservé à droite, nul à gauche |
| Extérieur complet | Toutes les lignes des deux tables | Conservé des deux côtés, nul là où manquant |
Jointure interne
Jointure interne Cette fonction permet de renvoyer les lignes des deux tables qui satisfont à la condition donnée. C'est l'opération de jointure la plus courante et elle peut être considérée comme le type de jointure par défaut.
Une jointure interne, ou équijointure, est une jointure basée sur un comparateur qui utilise des comparaisons d'égalité dans le prédicat de jointure. Cependant, si vous utilisez d'autres opérateurs de comparaison comme « > », il ne s'agit plus d'une équijointure. La jointure interne se divise en trois sous-types :
- Rejoindre Theta
- Jointure naturelle
- Rejoindre EQUI
Rejoindre Thêta
Rejoindre Thêta permet de fusionner deux tables en fonction de la condition représentée par θ. Les jointures θ fonctionnent avec tous les opérateurs de comparaison. Elles sont notées par le symbole θ. θLe cas général d'une opération JOIN est appelé jointure thêta.
syntaxe:
A ⋈θ B
Une jointure thêta peut utiliser n'importe quelles conditions dans les critères de sélection.
Considérez les tableaux suivants.
| Tableau A | Tableau b | |||
|---|---|---|---|---|
| colonne 1 | colonne 2 | colonne 1 | colonne 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
Par exemple :
A ⋈ A.column 2 > B.column 2 (B)
| A ⋈ A.colonne 2 > B.colonne 2 (B) | |
|---|---|
| colonne 1 | colonne 2 |
| 1 | 2 |
Rejoindre ÉQUI
Rejoindre ÉQUI Cela se produit lorsqu'une jointure thêta utilise uniquement la condition d'équivalence. La jointure EQUI est l'opération la plus difficile à implémenter efficacement dans un RDBMSet c'est l'une des raisons pour lesquelles un SGBDR peut avoir des problèmes de performance.
Par exemple :
A ⋈ A.column 2 = B.column 2 (B)
| A ⋈ A.colonne 2 = B.colonne 2 (B) | |
|---|---|
| colonne 1 | colonne 2 |
| 1 | 1 |
Jointure naturelle (⋈)
Jointure naturelle N'utilise aucun opérateur de comparaison. Dans ce type de jointure, les attributs doivent avoir le même nom et le même domaine. Dans une jointure naturelle, il doit exister au moins un attribut commun aux deux relations.
Elle effectue une sélection établissant l'égalité des attributs présents dans les deux relations et élimine les attributs dupliqués.
Exemple : Considérez les deux tableaux suivants.
| C | |
|---|---|
| En | Carrée Réf |
| 2 | 4 |
| 3 | 9 |
| D | |
|---|---|
| En | Cube |
| 2 | 8 |
| 3 | 18 |
C ⋈ D
| C ⋈ D | ||
|---|---|---|
| En | Carrée Réf | Cube |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
Jointure externe
An Jointure externe Ce type de jointure ne requiert pas que chaque enregistrement des deux tables jointes ait un enregistrement correspondant. Dans ce cas, la table conserve chaque enregistrement même s'il n'existe aucun autre enregistrement correspondant. Les trois types de jointure externe sont :
- Jointure externe gauche
- Jointure externe droite
- Jointure externe complète
Jointure externe gauche (A ⟕ B)
Jointure externe gauche Renvoie toutes les lignes du tableau de gauche, même si aucune ligne correspondante n'est trouvée dans le tableau de droite. Si aucune correspondance n'est trouvée à droite, la valeur null est renvoyée.
Considérons les deux tableaux suivants.
| A | |
|---|---|
| En | Carrée Réf |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| B | |
|---|---|
| En | Cube |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| A ⟕ B | ||
|---|---|---|
| En | Carrée Réf | Cube |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
Jointure extérieure droite (A ⟖ B)
Jointure externe droite Renvoie toutes les colonnes de la table de droite, même si aucune ligne correspondante n'est trouvée dans la table de gauche. En l'absence de correspondance dans la table de gauche, la valeur NULL est renvoyée. Une jointure externe droite est l'inverse d'une jointure externe gauche.
AB
| A ⟖ B | ||
|---|---|---|
| En | Cube | Carrée Réf |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Jointure extérieure complète (A ⟗ B)
Dans une Jointure externe complète, tous les tuples des deux relations sont inclus dans le résultat, quelle que soit la condition de correspondance.
Exemple :
AB
| A ⟗ B | ||
|---|---|---|
| En | Carrée Réf | Cube |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |


