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:
WHEREsakinyje duomenų filtravimui.FROMsakinyje kaip virtuali lentelė (paveldėta lentelė).SELECTsakinyje 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;