Sobes.tech
Junior

Co jsou poddotazy v SQL?

sobes.tech AI

Odpověď od AI

Poddotaz (nebo vnořený dotaz) v SQL je dotaz SELECT, který je vložen uvnitř jiné SQL instrukce (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). Poddotaz se provádí jako první a jeho výsledek je použit externím dotazem.

  • Použití:

    • V klauzuli WHERE pro filtrování dat.
    • V klauzuli FROM jako virtuální tabulka (odvozená tabulka).
    • V klauzuli SELECT pro zobrazení agregovaných nebo souvisejících dat (skalární poddotaz).
    • S operátory IN, EXISTS, ANY, ALL.
  • Výhody:

    • Umožňují provádět složité výběry dat.
    • Zlepšují čitelnost dotazů ve srovnání s složitými spojeními.
    • Mohou být použity jako zdroj dat.
  • Typy:

    • Skalární: Vrací jednu hodnotu (jeden řádek a jeden sloupec).
    • Víceřádkové: Vrací jeden sloupec a několik řádků. Používá se s IN, ANY, ALL.
    • Více sloupcové: Vrací více sloupců. Rarita.
    • Korelované: Závisí na vnějším dotazu a provádí se pro každý řádek vnějšího dotazu.

Příklad použití v WHERE:

SELECT
    order_id,
    customer_id,
    order_date
FROM
    orders
WHERE
    customer_id IN (
        SELECT
            customer_id
        FROM
            customers
        WHERE
            city = 'New York'
    );

Příklad použití v 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;