- •2 Вопрос
- •3 Вопрос
- •4 Вопрос
- •5 Вопрос
- •6 Вопрос
- •7 Вопрос
- •Вопрос 8
- •Вопрос 9
- •Вопрос 10
- •Вопрос 11
- •Вопрос 12
- •Вопрос 13
- •Вопрос 14
- •Вопрос 15. Разработка предварительных отношений бд на основе er-диаграммы.
- •Вопрос 16
- •Вопрос 17. Реализация связи таблиц в субд Access.
- •Что такое связи между таблицами
- •Виды связей между таблицами
- •Связи "один ко многим"
- •Связи "многие ко многим"
- •Связи "один к одному"
- •Создание связей между таблицами
- •Создание связей "один ко многим" или "один к одному"
- •Создание связей "многие ко многим"
- •Целостность данных
- •Каскадные обновления и удаления
- •Типы соединений
- •Вопрос 18
- •Вопрос 19
- •Вопрос 20
- •Вопрос 21
- •Вопрос 22
- •Вопрос 23
- •Вопрос 24
- •Вопрос 25
- •Вопрос 26
- •Вопрос 27
- •Вопрос 28
- •Вопрос 29
- •Вопрос 30
- •Вопрос 31
- •Вопрос 32
- •Вопрос 33
- •Вопрос 34
- •Вопрос 35
- •Недостатки
- •Вопрос 36
- •Вопрос 37
- •1. Создание групп (group by)
- •3. Группировка и сортировка
- •Вопрос 40.
- •Вопрос 39.
- •Вопрос 38. Использование подзапросов в запросах на выборку. Язык sql
- •Соотнесенный подзапрос
Вопрос 38. Использование подзапросов в запросах на выборку. Язык sql
Подзапросы, внутренние или вложенные запросы – есть не что иное, как запрос внутри запроса. Обычно, подзапрос используется в конструкции WHERE. И, в большинстве случаев, подзапрос используется, когда вы можете получить значение с помощью запроса, но не знаете конкретного результата. Подзапросы являются альтернативным путем получения данных из множества таблиц. Наряду с операторами сравнения такими, как =, <, >, >=, <= и др., Вы можете использовать подзапросы с перечисленными ниже конструкциями:
SELECT
INSERT
UPDATE
DELETE
Примеры подзапросов
Обычно, подзапрос возвращает только одну запись, но случается и так, что записей может быть много, тогда в условии WHERE используются такие операторы, как IN, NOT IN. Запрос может выглядеть следующий образом:
SELECT first_name, last_name, subject FROM student_details WHERE games NOT IN ('Cricket', 'Football');
Тогда результат будет примерно таким:
first_name last_name games ------------ ----------- ---------- Shekar Gowda Badminton Priya Chandra Chess
Вы можете использовать подзапрос с оператором INSERT для добавления данных из одной таблицы в другую. Давайте попробуем сгруппировать всех студентов, которые изучают математику в таблицу math_group
INSERT INTO maths_group(id, name) SELECT id, first_name || ' ' || last_name FROM student_details WHERE subject= 'Maths
) Подзапрос может использоваться с оператором SELECT, как описано ниже. Давайте используем таблицы product и order_items, объединив их между собой
select p.product_name, p.supplier_name, (select order_id from order_items where product_id = 101) as order_id from product p where p.product_id = 101
product_name supplier_name order_id -------------- -------------- ---------- Television Onida 5103
Соотнесенный подзапрос
Запрос называется соотнесенным, когда оба, и внутренний, и внешний, запросы взаимозависимы. Это означает, что для обработки каждой записи внутреннего запроса, должна быть получена также запись внешнего запроса, т.е. внутренний запрос всецело зависит от внешнего.
SELECT p.product_name FROM product p WHERE p.product_id = (SELECT o.product_id FROM order_items o WHERE o.product_id = p.product_id);
