26. Практическая Подзапросы
Цель работы
- Научиться использовать подзапросы в разделе
WHERE - Освоить использование операторов
IN,ANY,ALL. - Понять принцип работы коррелированных подзапросов.
- Научиться применять подзапросы для анализа данных в собственной базе данных.
Ход работы
Задание 1. Подзапрос в WHERE (=)
- Выберите две связанные таблицы (например:
StudentsиGroups,OrdersиCustomers). - Составьте запрос, который использует подзапрос в
WHEREс оператором=. - Подзапрос должен возвращать одно значение.
Задание 2. Подзапрос с IN
- Составьте запрос, в котором подзапрос возвращает несколько значений.
- Используйте оператор
IN. - Выведите записи, удовлетворяющие условию.
Задание 3. Подзапрос с агрегатной функцией
- Найдите записи, значение которых больше среднего по таблице.
- Используйте подзапрос с функцией
AVG().
Пример идеи:
- сотрудники с зарплатой выше средней;
- товары дороже средней цены;
- студенты с баллом выше среднего.
Задание 4. Подзапрос в SELECT
- Используйте подзапрос внутри списка выбираемых столбцов.
- Подзапрос должен вычислять агрегатное значение (например, среднее или общее количество).
Задание 5. Подзапрос в FROM
- Создайте подзапрос, который выполняет группировку.
- Используйте его как временную таблицу во внешнем запросе.
- Обязательно задайте псевдоним.
Задание 6. Коррелированный подзапрос
- Составьте запрос, в котором подзапрос зависит от внешнего запроса.
- Подзапрос должен использовать значение из внешней таблицы.
Пример идеи: - студенты с баллом выше среднего по своей группе; - товары дороже среднего в своей категории.
Задание 7. Итоговый аналитический запрос
Составьте один сложный запрос, который:
- использует подзапрос;
- содержит агрегатную функцию;
- имеет практический смысл для вашей предметной области.
Требования к отчёту
Отчёт должен содержать: 1. Тему. 2. Краткое описание своей базы данных (что за предметная область, какие таблицы используются). 3. Для каждого задания: - Используемые таблицы - SQL запрос + описание, - Результат.