Sobes.tech
Junior

Kas ir apakšvaicājumi SQL?

sobes.tech AI

Atbilde no AI

Subvaicājums (vai iekšēja vaicājums) SQL ir SELECT vaicājums, ievietots cita SQL operatora (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE) iekšpusē. Subvaicājums tiek izpildīts pirmais, un tā rezultāts tiek izmantots ārējā vaicājumā.

  • Lietojums:

    • WHERE teikumā datu filtrēšanai.
    • FROM teikumā kā virtuāla tabula (paveldētā tabula).
    • SELECT teikumā kā agregētu vai saistītu datu izvade (skalarais subvaicājums).
    • Ar operatoriem IN, EXISTS, ANY, ALL.
  • Priekšrocības:

    • Atļauj veikt sarežģītus datu atlases vaicājumus.
    • Uzlabo vaicājumu lasāmību salīdzinājumā ar sarežģītām savienojumiem.
    • Var tikt izmantots kā datu avots.
  • Veidi:

    • Skalarais: Atgriež vienu vērtību (vienu rindu un vienu kolonnu).
    • Daudzkārtējs: Atgriež vienu kolonnu un vairākas rindas. Lietojams ar IN, ANY, ALL.
    • Daudzkolonnu: Atgriež vairākas kolonnas. Reti lietots.
    • Korelatīvs: Ir atkarīgs no ārējā vaicājuma un tiek izpildīts katrai ārējā vaicājuma rindai.

Piemērs WHERE teikumā:

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

Piemērs FROM teikumā:

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;