Une sous-requête est une requête imbriquée dans une autre requête. Pour illustrer son mode de fonctionnement, j'utilise la table FavColors, qui comporte deux colonnes : Person et FavoriteColor. La figure 4 contient la table et l'instruction SQL qui la crée. Supposons que je recherche la liste des personnes dont la
Introduction aux sous-requêtes
couleur favorite est également appréciée par d’autres personnes du groupe.
Par » appréciée « , nous entendons une couleur que plus de deux personnes dans
la table choisissent comme leur couleur favorite. Je peux utiliser une sous-requête
et la requête la contenant, pour trouver d’abord la couleur favorite de chaque
personne puis renvoyer les lignes avec les couleurs choisies par plus de deux
personnes. La requête
Select *
From FavColors OuterRow
Where 3 <=
( Select Count( * )
From FavColors InnerRow
Where OuterRow.FavoriteColor
= InnerRow.FavoriteColor )
Un nom de corrélation est un nom unique qui qualifie un
nom de colonne
(avec sa sous-requête imbriquée) produit la table de résultat illustrée en figure
5, nommant trois personnes ayant choisi le jaune (yellow) et trois ayant choisi
le marron (brown) comme couleur favorite, rendant ces couleurs « appréciées »
d’après notre définition. Analysons maintenant la requête et sa sous-requête.
La clause Select * de la requête précise que toutes les colonnes définies dans
la table de base doivent apparaître dans la table de résultats. La clause From
de la requête contient le nom de la table (FavColors) suivi par le nom de corrélation
OuterRow. Un nom de corrélation est un nom unique qui qualifie un nom de colonne
(nous y reviendrons dans quelques instants). Dans ce cas, le nom de colonne
qualifié est FavoriteColor. La clause Where de la requête renvoie toutes les
lignes dans lesquelles 3 est inférieur ou égal au résultat de la sous-requête.
Comme 3 est une valeur unique, la sous-requête doit aussi renvoyer une valeur
unique.
La sous-requête, placée entre parenthèses d’après les règles de la syntaxe SQL,
utilise la fonction Count pour trouver la valeur unique qui exprime le nombre
de lignes contenant la même couleur favorite. La fonction Count est une fonction
de colonne SQL opérant sur des colonnes au travers de plusieurs lignes et renvoie
le nombre de lignes satisfaisant à la condition posée dans une requête. Les
fonctions de colonne SQL, y compris la fonction Count, renvoient toujours une
valeur unique. Ainsi, la requête
Select Count( * )
From FavColors
Where FavoriteColor = ‘Green’
renvoie le nombre 2 parce qu’il y a deux lignes dans la table FavColors ayant
la valeur Green pour la colonne FavoriteColor.
L’utilisation de Count dans notre sous-requête est légèrement plus compliquée
que cet exemple simple. Notons que la clause From de la sous-requête utilise
la table FavColors et le nom de corrélation InnerRow. Quand la sous-requête
s’exécute, les requêtes externes et internes ont une ligne prise en considération
en même temps. La clause Where de la sous-requête (c’est-à -dire la requête interne)
utilise les noms de corrélation pour qualifier la ligne comme externe ou interne
lorsqu’elle fait référence au nom de colonne FavoriteColor. Pour chaque ligne
de la table (le OuterRow de la requête externe), la fonction Count compare la
valeur FavoriteColor de cette ligne (OuterRow.FavoriteColor) à la valeur FavoriteColor
de chaque ligne dans la table (InnerRow.FavoriteColor). Elle compte le nombre
de correspondances et renvoie le comptage à la requête externe. La clause Where
de la requête externe indique que si le nombre renvoyé par la sous-requête est
supérieur à 2, la ligne en cours d’évaluation dans la requête externe est sélectionnée.
Autrement dit, la requête renvoie toutes les lignes contenant une couleur que
plus de deux personnes ont choisie comme leur favorite.
C’est tout pour l’instant. Dans un prochain article, nous verrons d’autres utilisations
des sous-requêtes.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
- L’illusion de la destruction massive d’emplois par l’IA
- Comprendre le SOC : votre bouclier essentiel en cybersécurité
- IA : le changement de paradigme des entreprises françaises se joue désormais à l’échelle humaine
Articles les + lus
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
Adapter la sécurité OT aux réalités de l’industrie
Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
Mixité dans la Tech : en 2026, un choix de souveraineté stratégique
Analyse Patch Tuesday Mars 2026
À la une de la chaîne Tech
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
- Adapter la sécurité OT aux réalités de l’industrie
- Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
- Mixité dans la Tech : en 2026, un choix de souveraineté stratégique
- Analyse Patch Tuesday Mars 2026
