Comprendre les jointures SQL peut être complexe pour les débutants.
Sans une compréhension claire, il est difficile d’extraire des données précises de multiples tables.
Cet article vous guide à travers les types de jointures SQL avec des exemples pratiques pour clarifier leur utilisation.
Appréhendez les fondamentaux du langage SQL pour savoir assimiler ses fonctions standards.
Types de jointures SQL expliqués
-
Jointure d’égalité (équijointure)
JOIN ON -
Jointure EXTERNE
LEFT | RIGHT | FULL OUTER JOIN -
auto jointure
JOIN ON
• Nécessite des alias
Exercices pratiques sur les jointures SQL
- Exercice 1 :Équijointure
Annonce d’exercice
1. Affichez le nom des clients (SOCIETE) avec leurs différentes commandes (NO_COMMANDEet DATE_COMMANDE).
2. Affichez la liste des produits (NOM_PRODUIT, UNITES_STOCK) ainsi que le nom de lacatégorie de chaque produit uniquement pour les produits des catégories 1, 4 et 7.
3. Affichez le nom, le prénom et la société cliente (SOCIETE) pour les employés qui ont
effectué une vente pour les clients de « Paris » trié sur le nom de la societé.
4. Affichez les sociétés clientes qui ont commandé le produit « Gorgonzola Telino » trié sur le nom de la societé
Solution
- Affichage des clients et de leurs commandes
1) Affichez le nom des clients (SOCIETE) avec leurs différentes commandes (NO_COMMANDE et DATE_COMMANDE).
Requête SQL :
SELECT societe, no_commande, date_commande
FROM clients a JOIN commandes b
ON a.code_client = b.code_client
Résultat attendu :
La requête renvoie une liste des clients avec leurs numéros de commande et les dates associées
- Affichage des produits et de leurs catégories
2) Affichez la liste des produits (NOM_PRODUIT, UNITES_STOCK) ainsi que le nom de la catégorie de chaque produit uniquement pour les produits des catégories 1, 4 et 7.
Requête SQL :
SELECT nom_categorie, societe, nom_produit
FROM produits a JOIN fournisseurs b ON a.no_fournisseur = b.no_fournisseur
JOIN categories c ON a.code_categorie = c.code_categorie AND
a.code_categorie IN (1,4,7);
Résultat attendu :
La requête renvoie la liste des produits, incluant leur nom et le nombre d’unités en stock, ainsi que le nom de la catégorie, uniquement pour les produits des catégories 1, 4 et 7.
- Employés ayant effectué des ventes à paris
3) Affichez le nom, le prénom et la société cliente (SOCIETE) pour les employés qui ont effectué une vente pour les clients de « Paris », trié sur le nom de la société.
Requête SQL :
SELECT nom, prenom, societe
FROM employes a JOIN commandes b
ON a.no_employe = b.no_employe
JOIN clients c ON b.code_client = c.code_client
AND c.ville = 'Paris'
ORDER BY societe;
Résultat attendu :
La requête renvoie le nom, le prénom et la société des employés qui ont effectué une vente pour les clients de « Paris », triés par le nom de la société.
- Sociétés ayant commandé un produit spécifique
4) Affichez les sociétés clientes qui ont commandé le produit « Gorgonzola Telino », trié sur le nom de la société.
Requête SQL :
SELECT societe, ville
FROM clients a, commandes b, details_commandes c, produits d
WHERE a.code_client = b.code_client AND
b.no_commande = c.no_commande
AND c.ref_produit = d.ref_produit
AND d.nom_produit = 'Gorgonzola Telion'
ORDER BY societe;
Résultat attendu
Cette requête renvoie un tableau vide
- Jointures externes :exercice 2
Annonce d’exe Affichez le nom et les localités des clients ainsi que le cumul des quantités vendues (SUM(quantite)) par localité. Affichez les enregistrements par ordre décroissant de cumul des commandes.rcice
Solution
- Requête SQL :
SELECT c.societe, c.ville, SUM(dc.quantite) AS cumul_quantites
FROM clients c
LEFT JOIN commandes co ON c.code_client = co.code_client
LEFT JOIN details_commandes dc ON co.no_commande = dc.no_commande
GROUP BY c.societe, c.ville
ORDER BY cumul_quantites DESC;
Explication de la Solution :
- LEFT JOIN :Utilisé pour s’assurer que tous les clients sont inclus, même ceux qui n’ont pas passé de commandes.
- SUM(quantite) :Calcule le cumul des quantités vendues par localité.
- GROUP BY :Regroupe les résultats par société et ville pour le calcul du cumul.
- ORDER BY :Trie les résultats par cumul des quantités en ordre décroissant.
Résultat attendu :
La requête renvoie le nom de la société, la ville et le cumul des quantités vendues, en incluant tous les clients, même ceux sans commandes, triés par le cumul des quantités en ordre décroissant
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 équijointure en SQL ?
Comment utiliser une jointure externe en SQL ?
Quels exercices pratiques peuvent aider à comprendre les jointures SQL ?
Comment afficher les données des clients avec leurs commandes en SQL ?
Comment trier les résultats SQL par ordre décroissant ?
Conclusion
Les jointures SQL sont essentielles pour manipuler et interroger des données dans des bases de données relationnelles. Quelles autres techniques SQL aimeriez-vous explorer pour optimiser vos requêtes ?