Назад к вопросам
Junior
120
questionbank
Что такое подзапросы в SQL?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech 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;