Sobes.tech
Junior

Mis on alamküsitlused SQL-is?

sobes.tech AI

Vastus AI-lt

Alamvaicājums (vai iekšējs vaicājums) SQL ir SELECT vaicājums, ievietots cita SQL operatora (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE) iekšpusē. Alamvaicā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 alamvaicā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;