Retour au cours

Sous-Requêtes (Requêtes Imbriquées)

Principes Fondamentaux des Bases de Données : De Zéro à Héros

Leçon 30 : Sous-Requêtes (Requêtes Imbriquées)

Une Sous-Requête (ou Requête Interne, Requête Imbriquée, Nested Query) est une instruction SELECT intégrée à l'intérieur d'une autre requête SQL. Elles sont utilisées pour effectuer des opérations qui dépendent du résultat d'une autre requête.

Où les Sous-Requêtes Sont Utilisées

Les sous-requêtes peuvent être utilisées à plusieurs endroits :

  1. Dans la clause WHERE (le plus courant) : Pour filtrer la requête externe.
  2. Dans la clause SELECT : Pour renvoyer une seule valeur scalaire (sous-requête scalaire).
  3. Dans la clause FROM : Pour traiter le résultat de la sous-requête comme une table temporaire (Table Dérivée—Derived Table).

Exemple : Sous-Requête dans la Clause WHERE

Trouver tous les produits dont le prix est supérieur au prix moyen de tous les produits.

  • Étape 1 (Requête Interne) : Trouver le prix moyen.
  • Étape 2 (Requête Externe) : Utiliser cette moyenne pour filtrer les produits.

sql SELECT Name, Price FROM Products WHERE Price > ( SELECT AVG(Price) FROM Products -- Requête Interne );

Utilisation de IN avec les Sous-Requêtes

Si la requête interne renvoie une liste de valeurs (plus d'une ligne), vous devez utiliser l'opérateur IN.

Exemple : Trouver les Employés dans des Départements Spécifiques

Trouver tous les employés qui travaillent dans des départements situés à 'New York'.

sql SELECT Name FROM Employees WHERE DeptID IN ( SELECT DeptID FROM Departments WHERE Location = 'New York' );