4.89M
Категория: Базы данныхБазы данных

Запросы и подзапросы в контексте SQL

1.

2.

В контексте SQL (Structured Query
Language), запрос (query) представляет
собой команду, отправляемую к базе
данных для выполнения операций
чтения, записи, обновления или
удаления данных. Запрос позволяет
пользователю извлекать информацию
из базы данных или изменять её
содержимое в соответствии с
заданными условиями. Примеры
запросов включают операторы SELECT,
INSERT, UPDATE и DELETE.

3.

4.

5.

6.

7.

8.

Подзапрос (subquery) - это запрос,
который вложен внутри другого запроса.
Он используется для выполнения
дополнительной логики или фильтрации
данных, основываясь на результате
внешнего запроса. Подзапросы могут
быть использованы в различных частях
SQL-запроса, таких как условия WHERE,
операторы FROM и т. д.

9.

Основные различия между запросом и
подзапросом:
Область применения: Запрос обычно выполняется напрямую к
базе данных и может включать в себя одну или несколько
операций. Подзапрос, с другой стороны, является запросом,
который встраивается в другой запрос в качестве подчиненного
элемента.
Структура: Запрос может быть самодостаточным оператором
SQL, тогда как подзапрос всегда используется в контексте
другого запроса.
Цель: Запрос используется для выполнения основных
операций с базой данных, таких как выборка, вставка,
обновление или удаление данных. Подзапрос, с другой
стороны, обычно используется для более детальной
фильтрации данных или для выполнения операций на основе
результатов внешнего запроса.

10.

Пример запроса (SELECT): Пример использования подзапроса
(в условии WHERE):
SELECT first_name, last_name
FROM employees
WHERE department_id = 10;
Этот запрос извлекает имена и фамилии всех
сотрудников, которые работают в отделе с
department_id равным 10.
SELECT product_name
FROM products
WHERE category_id IN (SELECT category_id FROM
categories WHERE category_name = 'Electronics');
Этот запрос извлекает названия всех продуктов,
принадлежащих категории "Electronics". Подзапрос
используется для получения category_id из таблицы
categories, которая соответствует категории "Electronics".

11.

Пример подзапроса (в операторе FROM):
SELECT department_name, total_salary
FROM (
SELECT department_id, SUM(salary) AS total_salary
FROM employees
GROUP BY department_id
) AS department_salaries, departments
WHERE department_salaries.department_id = departments.department_id;
В этом запросе используется подзапрос в операторе FROM
для вычисления общей зарплаты для каждого отдела.
Результаты этого подзапроса объединяются с таблицей
departments на основе department_id, чтобы получить
имена отделов.
English     Русский Правила