Vous avez du mal à récupérer des données complètes à partir de plusieurs tables en SQL ?
Cela peut entraîner des analyses incomplètes ou erronées, impactant ainsi vos décisions basées sur les données.
Cet article vous guide à travers l’utilisation des jointures externes en SQL, une technique puissante pour surmonter ce défi.
Appréhendez les fondamentaux du langage SQL pour savoir assimiler ses fonctions standards.
L’objectif de cette section est de comprendre ce qu’est une jointure externe et comment l’utiliser pour écrire des requêtes multi-tables en SQL.
- Comprendre ce qu’est une jointure externe
- Ecrire des requêtes multi-tables en utilisant la jointure externe
Définition des jointures externes SQL
Une jointure externe permet d’afficher les lignes d’une table même si elles ne correspondent pas à la condition de jointure avec une autre table.
Les jointures externes se divisent en trois types principaux :
- LEFT OUTER JOIN :Récupère toutes les lignes de la table de gauche, même si aucune correspondance n’est trouvée dans la table de droite.
- RIGHT OUTER JOIN :Récupère toutes les lignes de la table de droite, même si aucune correspondance n’est trouvée dans la table de gauche.
- FULL OUTER JOIN :Récupère toutes les lignes des deux tables, qu’il y ait ou non des correspondances.
Syntaxe des JOINTURES : LEFT, RIGHT, FULL
Voici la syntaxe pour écrire une jointure externe dans un format normalisé en SQL :
SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]}
FROM nom_table1 [AS] alias1 [ {LEFT | RIGHT | FULL}
OUTER JOIN nom_table2 [AS] alias2 ON(nom_table1.nom_colonne= nom_table1.nom_colonne) ];
Cette syntaxe peut être utilisée pour lier deux tables en précisant le type de jointure externe souhaité (LEFT, RIGHT, FULL).
Exemples pratiques de jointures externes SQL
LEFT OUTER JOIN
La jointure LEFT OUTER JOIN récupère toutes les lignes de la table de gauche (CLIENTS), même si aucune correspondance n’est trouvée dans la table de droite (COMMANDES).
- Exemple :
SELECT cl.SOCIETE, cmd.NO_COMMANDE, cmd.DATE_COMMANDE
FROM CLIENTS cl
LEFT OUTER JOIN COMMANDES cmd
ON cl.CODE_CLIENT = cmd.CODE_CLIENT;
- Résultat :
Cette requête retourne toutes les sociétés, qu’elles aient passé une commande ou non.
- Si un client n’a pas de commande, les colonnes relatives à la commande seront NULL.
RIGHT OUTER JOIN
La jointure RIGHT OUTER JOIN récupère toutes les lignes de la table de droite ( COMMANDES ), même si aucune correspondance n’est trouvée dans la table de gauche ( CLIENTS ).
- Exemple :
SELECT cl.SOCIETE, cmd.NO_COMMANDE, cmd.DATE_COMMANDE
FROM CLIENTS cl
RIGHT OUTER JOIN COMMANDES cmd
ON cl.CODE_CLIENT = cmd.CODE_CLIENT;
- Résultat :
- Cette requête retourne toutes les commandes, même si aucune société cliente correspondante n’existe (ce qui est peu probable dans ce cas particulier).
FULL OUTER JOIN
La jointure FULL OUTER JOIN récupère toutes les lignes des deux tables, qu’il y ait ou non des correspondances. Cette jointure combine l’effet des LEFT OUTER JOIN et RIGHT OUTER JOIN.
- Exemple :
SELECT cl.SOCIETE, cmd.NO_COMMANDE, cmd.DATE_COMMANDE
FROM CLIENTS cl
FULL OUTER JOIN COMMANDES cmd
ON cl.CODE_CLIENT = cmd.CODE_CLIENT;
- Résultat :
- Cette requête retourne toutes les lignes de CLIENTS et COMMANDES.
- Les colonnes seront remplies de NULL là où il n’y a pas de correspondance dans les deux tables.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu’est-ce qu’une jointure externe en SQL ?
Comment fonctionne un LEFT OUTER JOIN ?
Quand utiliser un RIGHT OUTER JOIN ?
Quels sont les avantages d'un FULL OUTER JOIN ?
Comment écrire une requête SQL avec une jointure externe ?
Conclusion
Les jointures externes en SQL sont essentielles pour obtenir une vue d’ensemble des données sans perdre d’informations cruciales. Quelle est votre prochaine étape pour approfondir vos compétences en SQL ?