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:
WHEREteikumā datu filtrēšanai.FROMteikumā kā virtuāla tabula (paveldētā tabula).SELECTteikumā 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;