Junior
Qu'est-ce que les sous-requêtes en SQL?
sobes.tech IA
Réponse de l'IA
Une sous-requête (ou requête imbriquée) en SQL est une requête SELECT insérée à l'intérieur d'une autre instruction SQL (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). La sous-requête s'exécute en premier, et son résultat est utilisé par la requête externe.
-
Utilisation :
- Dans la clause
WHEREpour filtrer les données. - Dans la clause
FROMcomme une table virtuelle (table dérivée). - Dans la clause
SELECTpour afficher des données agrégées ou liées (sous-requête scalaire). - Avec les opérateurs
IN,EXISTS,ANY,ALL.
- Dans la clause
-
Avantages :
- Permettent d'effectuer des requêtes de données complexes.
- Améliorent la lisibilité des requêtes par rapport à des jointures complexes.
- Peuvent être utilisées comme source de données.
-
Types :
- Scalaire : Renvoie une seule valeur (une ligne et une colonne).
- Multi-lignes : Renvoie une colonne et plusieurs lignes. Utilisé avec
IN,ANY,ALL. - Multi-colonnes : Renvoie plusieurs colonnes. Utilisé rarement.
- Corrélée : Dépend de la requête externe et s'exécute pour chaque ligne de la requête externe.
Exemple d'utilisation dans WHERE :
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Exemple d'utilisation dans FROM :
SELECT
customer_name,
total_orders
FROM (
SELECT
c.customer_name,
COUNT(o.order_id) AS total_orders
FROM
customers c
JOIN
orders o ON c.customer_id = o.customer_id
GROUP BY
c.customer_name
) AS customer_order_counts
WHERE
total_orders > 10;