Similar presentations:
Запросы и подзапросы в контексте SQL
1.
2.
В контексте SQL (Structured QueryLanguage), запрос (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, чтобы получить
имена отделов.