Introduction aux jointures dans Oracle

Les jointures dans Oracle sont utilisées pour accéder aux données de plusieurs tables. Une jointure dans Oracle est utilisée à un endroit où plus de deux tables doivent être jointes pour collecter les informations utiles dans l'instruction Oracle SQL. En d'autres termes, la requête de jointure permet de récupérer les lignes de plus de deux tables ou vues en fonction des conditions de jointure. La condition de jointure peut être spécifiée dans la clause FROM ou dans la clause where. La condition de jointure compare les colonnes des différentes tables et récupère les lignes pour lesquelles la condition de jointure est vraie.

Types de jointures dans Oracle

Dans Oracle, il existe dix types de jointures différents, comme indiqué ci-dessous:

  • Jointures internes (également appelées jointures simples)
  • Equi rejoint
  • Jointures externes
  • Jointures externes gauches (également appelées jointures gauches)
  • Jointures extérieures droites (également appelées jointures droites)
  • Jointures externes complètes (également appelées jointures complètes)
  • Self Joins
  • Cross Joins (également appelés produits cartésiens)
  • Anti jointures
  • Semi jointures

Ensuite, nous comprenons chaque jointure en détail avec la syntaxe et les exemples.

1. INNER JOIN (également appelé Simple Join)

Les jointures internes rejoignent les tables multiples et renvoient les lignes pour lesquelles la condition de jointure est vraie. La jointure interne est la jointure la plus courante parmi les types de jointure.

Syntaxe:

SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;

Le diagramme ci-dessous représente la représentation visuelle de la jointure interne, comme dans le diagramme la zone ombrée renvoie comme résultat de la jointure INNER Oracle:

En conséquence, Oracle INNER JOIN renvoie les enregistrements d'intersection de t1 et t2.

Exemple:

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;

Cet exemple ci-dessus Oracle INNER JOIN renvoie toutes les lignes des tables employee et department où la valeur employee _id dans les tables employee et department correspond.

2. Equi se joint

Oracle Equi Joins récupère les valeurs de colonne correspondantes des plusieurs tables. La condition de jointure ou l'opérateur de comparaison présent dans la clause WHERE de l'instruction select.

Syntaxe:

SELECT column (, column ) FROM t1, t2
where t1.column = t2.column;

Le diagramme ci-dessous représente la représentation visuelle de l'équijoin, comme dans le diagramme la zone ombrée renvoie comme résultat de la jointure Oracle Equi.

En conséquence, Oracle Equijoin renvoie les enregistrements d'intersection de t1 et t2.

Exemple:

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee, department
where employee.employee _id = department.employee _id;

Cet exemple ci-dessus d'Oracle Equijoin renvoie toutes les lignes des tables des employés et des services où la valeur _id de l'employé dans les tables des employés et des services correspond.

3. Jointures externes

Un autre type de jointures est une jointure externe qui renvoie le résultat d'une jointure interne plus toutes les lignes d'une table pour lesquelles la condition de jointure n'est pas vraie.

Syntaxe:

SELECT column (, column ) FROM t1
LEFT | RIGHT | FULL (OUTER) JOIN t2
ON t1.column = t2.column;

Il existe trois types de jointure externe, comme indiqué ci-dessous:

  • Jointures externes gauches (également appelées jointures gauches)
  • Jointures extérieures droites (également appelées jointures droites)
  • Jointures externes complètes (également appelées jointures complètes)

4. Jointure extérieure gauche

Les retours de jointure gauche gauche contiennent toutes les lignes de la table LEFT (selon la condition spécifiée dans ON) et de l'autre table uniquement les lignes où la condition jointe est vraie.

Syntaxe:

SELECT column (, column ) FROM t1
LEFT (OUTER) JOIN t2
ON t1.column = t2.column;

Le mot-clé LEFT OUTER JOIN, utilise un LEFT JOIN dans certaines autres bases de données.

Le diagramme ci-dessous représente la représentation visuelle de LEFT OUTER JOIN, comme dans le diagramme la zone ombrée renvoie comme résultat de Oracle LEFT OUTER JOIN:

Oracle LEFT OUTER JOIN renvoie tous les enregistrements de t1 et les enregistrements d'intersection de t1 et t2 en conséquence.

Exemple:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
LEFT OUTER JOIN department
ON employee.employee _id = department.employee _id;

Cet exemple ci-dessus d'Oracle LEFT OUTER JOIN renverra toutes les lignes de la table employee et de la table department uniquement les lignes où la condition jointe est vraie. Les tables de département où la valeur _id de l'employé dans les tables d'employé et de département correspondent.

Si la valeur de l'employé _id dans la table des employés correspond dans la table des départements, les champs de la table des départements seront nuls dans le résultat.

5. Jointure extérieure droite

Les retours RIGHT OUTER JOIN contiennent toutes les lignes de la table RIGHT (selon la condition spécifiée dans ON) et de l'autre table uniquement les lignes où la condition jointe est vraie.

Syntaxe:

SELECT column (, column ) FROM t1
RIGHT (OUTER) JOIN t2
ON t1.column = t2.column;

Le mot clé RIGHT OUTER JOIN, utilisé comme RIGHT JOIN dans certaines autres bases de données.

Le diagramme ci-dessous représente la représentation visuelle de la RIGHT OUTER JOIN, comme dans le diagramme la zone ombrée renvoie comme résultat de la Oracle RIGHT OUTER JOIN.

Oracle RIGHT OUTER JOIN renvoie tous les enregistrements de t2 et les enregistrements d'intersection de t1 et t2 en conséquence.

Exemple:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
RIGHT OUTER JOIN department
ON employee.employee _id = department.employee _id;

Cet exemple ci-dessus d'Oracle LEFT OUTER JOIN renvoie toutes les lignes de la table department et de la table employee uniquement les lignes où la condition jointe est vraie. Les tables des employés dans lesquelles la valeur _id de l'employé dans les tables des employés et des départements correspond.

Si la valeur employee _id dans la table employee correspond dans la table department, les champs de la table employee seront nuls dans le résultat.

6. Jointure externe complète

Les retours de jointure complète contiennent toutes les lignes de la table LEFT et de la table RIGHT avec null dans les champs où la condition de jointure n'est pas vraie.

Syntaxe:

SELECT column (, column ) FROM t1
FULL (OUTER) JOIN t2
ON t1.column = t2.column;

Le mot clé FULL OUTER JOIN, utilisé comme FULL JOIN dans certaines autres bases de données.

Le diagramme ci-dessous représente la représentation visuelle de la FULL OUTER JOIN, comme dans le diagramme la zone ombrée renvoie comme résultat de la FULL OUTER JOIN d'Oracle.

Par conséquent, Oracle FULL OUTER JOIN renvoie tous les enregistrements des tables t1 et t2.

Exemple:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
FULL OUTER JOIN department
ON employee.employee _id = department.employee _id;

Cet exemple ci-dessus Oracle FULL OUTER JOIN renverra toutes les lignes de la table employee et de la table department avec des valeurs nulles où la condition jointe n'est pas vraie.

7. Oracle Self Joins

Dans l'auto-jointure, la table utilise deux fois dans la clause FROM à l'aide du nom d'alias de table. En d'autres termes, le soi se joint, rejoint une table elle-même. Oracle Self Join combine et renvoie les lignes de la table où la condition de jointure est vraie.

Exemple:

SELECT emp1.employee_name || 'works for' || emp2.employee_name
FROM employees emp1, employees emp2
WHERE emp1.manager_id = emp2.employee_id
ORDER BY emp1.employee_name;

Cet exemple ci-dessus Oracle self JOIN renverra toutes les lignes de la table des employés où la condition jointe est vraie.

8. Oracle Cross Joins (également appelés produits cartésiens)

La jointure croisée s'applique lorsque les deux tables n'ont aucune condition de jointure. La jointure croisée renvoie le produit cartésien des deux tables, produit cartésien où chaque ligne d'une table se combine avec chaque ligne de l'autre table. Supposons que table1 contient 100 lignes et table2 contient 10 lignes, le résultat de la jointure contiendrait 1000 lignes.

Exemple;

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
CROSS JOIN department

Cet exemple de jointure ci-dessus renvoie toutes les lignes de la table des employés combinées avec toutes les lignes de la table des départements.

9. Oracle Anti Joins

Les retours anti-jointure contiennent des lignes de la table LEFT (selon la condition ON spécifiée) où la condition jointe est vraie.

Exemple:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
WHERE department_id NOT IN (SELECT department_id from department
WHERE department_name = 'sales';

Cet exemple ci-dessus Oracle ANTI JOIN renverra des lignes de la table employee et où la condition jointe est vraie.

10. Oracle Semi Joins

Les retours semi-joints contiennent des lignes uniques de la table LEFT (selon la condition spécifiée dans ON) où la correspondance avec une sous-requête EXISTS est vraie.

Exemple:

SELECT employee.employee _id, employee.employee_name
FROM employee
WHERE EXISTS (SELECT department_id FROM department
WHERE department_name = 'sales');

Cet exemple ci-dessus d'Oracle SEMI JOIN renverra des lignes de la table des employés si EXISTS renvoie true.

Conclusion

Il est utilisé pour accéder aux données de plusieurs tables. Il existe sept types de jointures différents dans un Oracle.

Articles recommandés

Ceci est un guide des jointures dans Oracle. Nous discutons ici une introduction sur les jointures dans Oracle et ses 10 différents types dans les jointures dans Oracle. Vous pouvez également consulter nos autres articles connexes pour en savoir plus -

  1. Types de jointures dans SQL
  2. Tableau rejoint
  3. Oracle Warehouse Builder
  4. Fonctions de chaîne Oracle
  5. Qu'est-ce qu'une requête et types de requêtes Oracle
  6. 6 principaux types de jointures dans MySQL avec des exemples
  7. Guide des 9 principales clauses Oracle (exemple) l
  8. SELECT dans MySQL | Exemples à sélectionner dans MySQL

Catégorie: