Junior
Какви са подзаявките в SQL?
sobes.tech AI
Отговор от AI
Подзапросът (или вложеният заявка) в SQL е заявка SELECT, вмъкната вътре в друга SQL инструкция (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). Подзапросът се изпълнява първи, а резултатът му се използва от външния заявка.
-
Използване:
- В израза
WHEREза филтриране на данни. - В израза
FROMкато виртуална таблица (производна таблица). - В израза
SELECTза показване на агрегирани или свързани данни (скаларен подзапрос). - С операторите
IN,EXISTS,ANY,ALL.
- В израза
-
Предимства:
- Позволяват изпълнение на сложни заявки за данни.
- Подобряват четливостта на заявките в сравнение със сложни съединения.
- Могат да се използват като източник на данни.
-
Типове:
- Скаларен: Връща една стойност (един ред и една колона).
- Многоредов: Връща една колона и няколко реда. Използва се с
IN,ANY,ALL. - Многоколонен: Връща няколко колони. Рядко се използва.
- Корелиран: Зависим от външния заявка и се изпълнява за всеки ред на външната заявка.
Пример за използване в WHERE:
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Пример за използване в FROM:
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;