Cours SQL et MySQL · Module 8: Sous-requêtes

Hors du Labyrinthe - résumé

3 min de lecture
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 moyenne AVG) ou dans la liste des colonnes de SELECT.
  • L'opérateur IN vérifie si une valeur appartient à une liste renvoyée par une sous-requête ; NOT IN fonctionne à 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

OutilLa 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 ?