17:21
Подзапросы в WHERE: Использование подзапросов в WHERE.

Курс по SQL

Урок 31: Подзапросы в WHERE: Использование подзапросов в WHERE

В этом уроке мы подробно рассмотрим использование подзапросов в WHERE в SQL. Подзапросы в WHERE используются для фильтрации данных на основе вложенных запросов. Мы изучим синтаксис и примеры использования подзапросов в WHERE.

Основы подзапросов в WHERE

Подзапросы в WHERE позволяют фильтровать данные на основе результатов другого запроса. Рассмотрим пример, где мы выбираем имена студентов, которые учатся на курсе «Физика»:

SELECT Имя
FROM Студенты
WHERE КурсID = (SELECT ID FROM Курсы WHERE Название = 'Физика');

Результат выполнения

Имя
Мария

Синтаксис подзапросов в WHERE

Синтаксис подзапросов в WHERE следующий:

SELECT столбцы
FROM таблица
WHERE столбец оператор (SELECT столбец FROM таблица WHERE условие);

Вы можете использовать различные операторы, такие как =, IN, EXISTS и другие, для выполнения подзапросов в WHERE.

Использование оператора IN

Оператор IN позволяет выбирать строки, которые соответствуют любому значению из списка, возвращаемого подзапросом. Рассмотрим пример:

SELECT Имя
FROM Студенты
WHERE КурсID IN (SELECT ID FROM Курсы WHERE Название IN ('Математика', 'Физика'));

Результат выполнения

Имя
Иван
Мария

Использование оператора EXISTS

Оператор EXISTS позволяет выбирать строки, для которых существует хотя бы одна строка, соответствующая подзапросу. Рассмотрим пример:

SELECT Имя
FROM Студенты s
WHERE EXISTS (SELECT 1 FROM Курсы c WHERE c.ID = s.КурсID AND c.Название = 'Математика');

Результат выполнения

Имя
Иван

Использование оператора ANY

Оператор ANY позволяет сравнивать значение с любым значением из списка, возвращаемого подзапросом. Рассмотрим пример:

SELECT Имя
FROM Студенты
WHERE КурсID = ANY (SELECT ID FROM Курсы WHERE Название = 'Физика');

Результат выполнения

Имя
Мария

Упражнения

Упражнение 1: Подзапрос в WHERE с оператором IN

Выполните запрос для выборки имен студентов, которые учатся на курсах «Химия» или «Физика», используя подзапрос в WHERE с оператором IN.

Решение:

SELECT Имя
FROM Студенты
WHERE КурсID IN (SELECT ID FROM Курсы WHERE Название IN ('Химия', 'Физика'));

Объяснение: Мы использовали подзапрос в WHERE с оператором IN для выборки студентов, которые учатся на курсах «Химия» или «Физика».

Упражнение 2: Подзапрос в WHERE с оператором EXISTS

Выполните запрос для выборки имен студентов, которые учатся на курсе «Математика», используя подзапрос в WHERE с оператором EXISTS.

Решение:

SELECT Имя
FROM Студенты s
WHERE EXISTS (SELECT 1 FROM Курсы c WHERE c.ID = s.КурсID AND c.Название = 'Математика');

Объяснение: Мы использовали подзапрос в WHERE с оператором EXISTS для выборки студентов, которые учатся на курсе «Математика».

Упражнение 3: Подзапрос в WHERE с оператором ANY

Выполните запрос для выборки имен студентов, которые учатся на курсе «Физика», используя подзапрос в WHERE с оператором ANY.

Решение:

SELECT Имя
FROM Студенты
WHERE КурсID = ANY (SELECT ID FROM Курсы WHERE Название = 'Физика');

Объяснение: Мы использовали подзапрос в WHERE с оператором ANY для выборки студентов, которые учатся на курсе «Физика».

Упражнение 4: Фильтрация данных с использованием подзапросов в WHERE

Выполните запрос для выборки имен студентов, которые учатся на курсе, преподаваемом преподавателем с именем «Петров», используя подзапрос в WHERE.

Решение:

SELECT Имя
FROM Студенты
WHERE КурсID = (SELECT ID FROM Курсы WHERE ПреподавательID = (SELECT ID FROM Преподаватели WHERE Имя = 'Петров'));

Объяснение: Мы использовали подзапрос в WHERE для выборки студентов, которые учатся на курсе, преподаваемом преподавателем с именем «Петров».

Категория: SQL | Просмотров: 98 | Добавил: Admin | Рейтинг: 1.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *: