Les sous-requêtes en SQL

Qu'est-ce qu'une sous-requête ?

Les sous-requêtes, également appelées requêtes imbriquées ou internes, sont des instructions SQL intégrées à l'intérieur d'autres instructions SQL. Elles permettent d'extraire des données d'une requête afin de les utiliser dans une autre. Cela constitue un outil puissant pour effectuer des opérations complexes sur les bases de données.

Remplacer une valeur scalaire

Une situation courante où l'on utilise des sous-requêtes est pour remplacer une valeur scalaire dans une requête. Une sous-requête scalaire retourne une unique valeur et peut être intégrée dans des expressions, telles que la liste SELECT, la clause WHERE, ou même dans le cadre d'opérations arithmétiques.

SELECT emp_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

Cet exemple permet de récupérer le nom et le salaire des employés dont le salaire est supérieur à la moyenne calculée dans la sous-requête.

Remplacer une table

Les sous-requêtes peuvent également être utilisées à la place d'une table pour extraire des données. Cela permet d'effectuer des opérations sur un sous-ensemble de données dérivées d'une autre table ou d'un ensemble de tables.

SELECT salesperson_id, total_sales
FROM (SELECT salesperson_id, SUM(amount) AS total_sales
      FROM sales
      GROUP BY salesperson_id) AS subquery;

Dans cet exemple, la sous-requête calcule le total des ventes réalisées par chaque vendeur, puis la requête principale extrait l'ID du vendeur et les ventes totales associées.

Utilisation dans une clause WHERE

Un autre usage fréquent des sous-requêtes est leur inclusion dans une clause WHERE pour filtrer des données basées sur des conditions spécifiques.

SELECT product_name, price
FROM products
WHERE category_id IN (SELECT category_id FROM categories WHERE category_name = 'Electronics');

Cet exemple sélectionne le nom et le prix des produits qui appartiennent à la catégorie ‘Électronique’ en utilisant une sous-requête dans la clause WHERE.

Conclusion : Utilisation des sous-requêtes dans vos projets

Les sous-requêtes sont un élément essentiel de SQL pour manipuler et interroger des données complexes. En combinant des sous-requêtes avec d'autres requêtes, vous pouvez développer des analyses plus profondes et précises des données. Que vous travailliez sur un site web ou que vous développiez une start-up, comprendre l'utilisation efficace de ces requêtes peut vous aider à concevoir des applications plus dynamiques et réactives.