Cours SQL et MySQL · Module 8: Sous-requêtes
Hors du Labyrinthe - résumé
Dans cette leçon3
Bien joué ! Tu es sorti du Labyrinthe des Requêtes sans perdre le fil d'Ariane. Les recherches imbriquées n'ont plus de secrets pour toi. C'était l'une des parties les plus difficiles de la Grande Bibliothèque - de nombreux scribes s'y sont perdus des jours durant dans ses ruelles. Tu l'as traversé d'un pas assuré.
Souviens-toi de la règle la plus importante du Labyrinthe : lis toujours une requête de l'intérieur vers l'extérieur. Comprends d'abord ce que calcule ou renvoie la sous-requête interne, et seulement ensuite comment la requête externe l'utilise. Avec cette habitude, même l'imbrication la plus emmêlée devient claire.
Ce que tu as appris
- Une sous-requête est un SELECT entre parenthèses, placé à l'intérieur d'une autre requête.
- Une sous-requête scalaire renvoie une seule valeur - parfaite pour les comparaisons dans
WHERE(par exemple avec la moyenneAVG) ou dans la liste des colonnes deSELECT. - L'opérateur IN vérifie si une valeur appartient à une liste renvoyée par une sous-requête ;
NOT INfonctionne à l'inverse. - Une sous-requête corrélée fait référence à une colonne de l'extérieur et s'exécute pour chaque ligne.
- EXISTS renvoie vrai quand la sous-requête trouve au moins une ligne ; NOT EXISTS - quand elle n'en trouve aucune.
- Une table dérivée est une sous-requête dans
FROM. dans MySQL, elle nécessite un alias. - UNION combine des ensembles et supprime les doublons, UNION ALL garde toutes les lignes.
- Les sous-requêtes peuvent être imbriquées et combinées avec la condition
AND.
Carte des couloirs
| Outil | La question à laquelle il répond |
|---|---|
| Sous-requête scalaire | « Comment cette ligne se compare-t-elle à un calcul ? » |
IN + sous-requête | « La valeur est-elle dans cette liste ? » |
| Sous-requête corrélée | « Qu'est-ce qui, de l'autre côté, correspond à cette ligne ? » |
EXISTS / NOT EXISTS | « Un parchemin apparenté existe-t-il, ou fait-il défaut ? » |
Table dérivée (FROM) | « Calculer quelque chose sur le résultat d'une autre requête » |
UNION / UNION ALL | « Combiner deux listes en une seule » |
Et ensuite ?
Dans le prochain lieu, nous entrerons dans la Salle du Catalogue, où tu apprendras à accélérer les recherches - pour que la Bibliothèque trouve les parchemins en un clin d'œil, même parmi des centaines de milliers de livres. En avant !
Tu as repéré une erreur dans cette leçon ?