Sobes.tech
Junior

Kas yra subklausimai SQL?

sobes.tech AI

Atsakymas iš AI

Subužklausa (arba įdėta užklausa) SQL yra SELECT užklausa, įterpta į kitą SQL operatorių (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). Subužklausa vykdoma pirmoji, o jos rezultatas naudojamas išorinei užklausai.

  • Naudojimas:

    • WHERE sakinyje duomenų filtravimui.
    • FROM sakinyje kaip virtuali lentelė (paveldėta lentelė).
    • SELECT sakinyje kaip agreguotų ar susijusių duomenų išvedimui (skalarinė subužklausa).
    • Su operatoriais IN, EXISTS, ANY, ALL.
  • Privalumai:

    • Leidžia atlikti sudėtingus duomenų pasirinkimus.
    • Pagerina užklausų skaitomumą, palyginti su sudėtingais sujungimais.
    • Gali būti naudojama kaip duomenų šaltinis.
  • Tipai:

    • Skalarinė: Grąžina vieną reikšmę (vieną eilutę ir vieną stulpelį).
    • Daug eilutų: Grąžina vieną stulpelį ir kelias eilutes. Naudojama su IN, ANY, ALL.
    • Daug stulpelių: Grąžina kelis stulpelius. Retai naudojama.
    • Koreliacinė: Priklauso nuo išorinės užklausos ir vykdoma kiekvienai išorinės užklausos eilutei.

Pavyzdys naudojimo WHERE sakinyje:

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

Pavyzdys naudojimo FROM sakinyje:

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;