Types de jointures
INNER JOIN : Type de jointure qui retourne uniquement les lignes qui ont une correspondance dans les deux tables.
SELECT colonnes
FROM table1
INNER JOIN table2 ON table1.col = table2.col;
Déterminer les deux tables qui contiennent les données nécessaires
Trouver la colonne qui relie les deux tables (clé étrangère)
Indiquer comment les tables sont liées
Choisir les colonnes à inclure dans le résultat
Appliquer la jointure et analyser les résultats
INNER JOIN ne retourne que les lignes avec correspondance dans les deux tables
• Correspondance : Seules les lignes avec des correspondances dans les deux tables sont retournées
• Performance : Généralement la plus rapide des jointures
• Cardinalité : Le nombre de résultats dépend des relations entre les tables
LEFT JOIN : Type de jointure qui retourne toutes les lignes de la table de gauche et les correspondances de la table de droite (NULL si aucune correspondance).
Déterminer la table dont toutes les lignes doivent être conservées
Spécifier la table à joindre à la gauche
Spécifier comment les tables sont liées
Prévoir que certaines colonnes de droite pourraient être NULL
Vérifier que toutes les lignes de gauche sont présentes
LEFT JOIN conserve toutes les lignes de la table de gauche
• Complétude gauche : Toutes les lignes de la table de gauche sont conservées
• NULL pour absence : Les colonnes de droite sont NULL si aucune correspondance
• Utilité : Utile pour les rapports complets (tous les clients, tous les employés, etc.)
RIGHT JOIN : Type de jointure qui retourne toutes les lignes de la table de droite et les correspondances de la table de gauche (NULL si aucune correspondance).
Déterminer la table dont toutes les lignes doivent être conservées
Spécifier la table à joindre à la droite
Spécifier comment les tables sont liées
Prévoir que certaines colonnes de gauche pourraient être NULL
Vérifier que toutes les lignes de droite sont présentes
Évaluer si un LEFT JOIN avec inversion des tables serait plus clair
RIGHT JOIN conserve toutes les lignes de la table de droite
• Complétude droite : Toutes les lignes de la table de droite sont conservées
• NULL pour absence : Les colonnes de gauche sont NULL si aucune correspondance
• Alternatives : Souvent remplacé par LEFT JOIN avec inversion des tables
Jointures multiples : Combinaison de plusieurs jointures dans une même requête pour relier plusieurs tables.
Séquence de jointures
Lister toutes les tables qui contiennent les données requises
Commencer par la table centrale et s'étendre progressivement
Spécifier comment chaque paire de tables est liée
Choisir le type approprié pour chaque jointure
Choisir les colonnes de toutes les tables nécessaires
Vérifier les résultats et optimiser si nécessaire
Les jointures multiples permettent d'accéder à des données de plusieurs tables
• Ordre : Les jointures s'effectuent de gauche à droite
• Performance : Peut ralentir les requêtes si mal optimisées
• Clarté : Utiliser des alias pour améliorer la lisibilité
Optimisation : Techniques pour améliorer les performances des requêtes avec jointures multiples.
Comprendre comment la requête sera exécutée par le SGBD
S'assurer que les colonnes de jointure sont indexées
Ajouter des filtres WHERE pour réduire les lignes
Utiliser le type le plus restrictif possible
Ne pas oublier les conditions ON
Parfois plus efficaces que les jointures
Valider les performances avec des données représentatives
L'optimisation des jointures améliore les performances des requêtes
• Index : Les colonnes de jointure devraient être indexées
• Filtres : Appliquer les conditions WHERE le plus tôt possible
• Volume : Les jointures peuvent augmenter considérablement le volume de données
- Alias : Utiliser des alias courts et explicites
- Indentation : Formater les requêtes pour la lisibilité
- Indexation : Créer des index sur les colonnes de jointure
- Filtres : Appliquer les conditions WHERE pour réduire les données
- Performance : Utiliser EXPLAIN pour analyser les plans d'exécution
- Tests : Vérifier les requêtes avec des volumes de données réalistes
- Les jointures s'effectuent de gauche à droite dans l'ordre spécifié
- Les colonnes de jointure doivent avoir des types de données compatibles
- Les jointures peuvent considérablement augmenter le volume de données
- Les index sur les colonnes de jointure améliorent les performances
- Il est crucial de comprendre la cardinalité des relations entre tables