Académique Documents
Professionnel Documents
Culture Documents
Lotfi NAJDI
Année Universitaire 2020 / 2021
Licence Professionnelle Génie Informatique
Faculté Polydisciplinaire de Taroudant
Concept de jointure
Jointure
Table 1 Table 2
Obtenir des données à partir de plusieurs tables
Jointure
Obtenir des données à partir de plusieurs tables
NATURAL JOIN
USING
ON
• Externes :
• Croisées :
CROSS
Joindre des tables à l'aide de la syntaxe SQL:1999
Utilisez une jointure pour effectuer une interrogation de données à partir de plusieurs
tables :
« NATURAL JOIN est une opération de jointure qui crée pour vous une clause de jointure
implicite basée sur les colonnes communes des deux tables. Les colonnes communes sont des
colonnes qui portent le même nom dans les deux tables. Peut consister à une INNER JOIN
(option par défaut), une LEFT OUTER JOIN, ou une RIGHT OUTER JOIN. » Oracle
jointures naturelles avec la clause NATURAL JOIN
FROM table1
Lorsque la requête de jointure est exécutée, Oracle commence à faire correspondre les
pour une donnée de la table table1 dans la table table2, la valeur est renvoyée.
Jointures naturelles
une seule colonne identique entre les deux tables
Jointures naturelles
une seule colonne identique entre les deux tables
SELECT department_id, department_name, location_id, city
FROM departments
NATURAL JOIN locations ;
Jointures à l'aide de la clause USING
• USING est équivalente à NATURAL JOIN avec possibilité de préciser les colonnes de
jointures.
• Si plusieurs colonnes portent le même nom, mais présentent des types de données
différents, utilisez la clause USING pour indiquer les colonnes à utiliser pour une
équijointure.
• Indiquez la clause USING pour mettre en correspondance une seule colonne lorsque la
correspondance concerne plusieurs colonnes.
• Utilisez des préfixes de tables pour qualifier le nom des colonnes qui se trouvent dans
plusieurs tables.
• Utiliser des alias de tables pour rendre la lecture (et l’écriture) plus aisées
• Les alias de tables permettent d'attribuer des noms plus courts aux tables pour créer
• Utilisez des alias de colonnes pour distinguer les colonnes portant des noms identiques,
• Si les colonnes de jointure portent le même nom, elles doivent être qualifiées.
• La clause ON permet d’indiquer des conditions arbitraires (ou les colonnes à joindre)
pour réaliser la jointure. Sans cette clause, l’ensemble des colonnes dont le nom est
table 1
Jointure
Résultat de la jointure
Jointure
de table1 et table2
Résultat final
table 2
table 3
Créer des jointures à trois liens avec la clause ON
SELECT employee_id, department_name, city, Country_Id
FROM employees e
JOIN departments d ON d.department_id = e.department_id
JOIN locations l ON d.location_id = l.location_id;
Appliquer des conditions supplémentaires à une jointure
Utilisez la clause AND ou la clause WHERE pour appliquer des conditions supplémentaires :
Ou bien
… …
EMPLOYEES JOB_GRADES
• Externe gauche LEFT OUTER JOIN : renvoie les lignes mises en correspondances, plus celles de
• Externe droite RIGHT OUTER JOIN : renvoie les lignes mises en correspondances, plus celles de
• Externe complète FULL OUTER JOIN : Renvoie les lignes mises en correspondance, ainsi que
les lignes pour lesquelles aucune correspondance n’est trouvée, qu’elle soit à gauche ou à droite.
INNER JOIN
R4ds relational-data
Outer join
R4ds relational-data
Outer join
R4ds relational-data
Renvoyer des enregistrements sans correspondance directe à
l'aide de jointures externes
DEPARTMENTS EMPLOYEES
…
Produit cartésien
• Si toutes les lignes de la première table sont jointes à toutes les lignes de la deuxième.
Pour éviter la formation d'un produit cartésien, incluez toujours une condition de
jointure valide.
et la couleur d'un vêtement particulier : SELECT size, color FROM sizes CROSS JOIN colors
Produit cartésien :
20 x 8 = 160 lignes
…
Créer des jointures croisées
La clause CROSS JOIN effectue une jointure croisée entre deux tables, équivalente à un produit
cartésien