Sobes.tech
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 WHERE pour filtrer les données.
    • Dans la clause FROM comme une table virtuelle (table dérivée).
    • Dans la clause SELECT pour afficher des données agrégées ou liées (sous-requête scalaire).
    • Avec les opérateurs IN, EXISTS, ANY, ALL.
  • 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;