Унарный оператор EXISTS проверяет, является ли пустым множество, специфицированное в его аргументе. EXISTS принимает значение TRUE, если множество непустое и FALSE в противном случае.
Пример 1.
Вывести номера и кол-во мест в аудиториях первого корпуса с вместимостью 30 и более мест, если в этом корпусе имеется хотя бы одна аудитория с вместимостью более 50 мест.
SELECT Номер_ауд, Кол-во_мест FROM АУДИТОРИЯ
WHERE Номер_корпуса = 1 AND Кол-во_мест >= 30 AND
EXISTS (SELECT * FROM АУДИТОРИЯ
WHERE Номер_корпуса = 1 AND Кол-во_мест > 50)
Пример 2.
Вывести названия факультетов, на котором работает хотя бы один преподаватель.
SELECT НАЗВАНИЕ FROM ФАКУЛЬТЕТ WHERE EXISTS (SELECT * FROM ПРЕПОДАВАТЕЛЬ WHERE ПРЕПОДАВАТЕЛЬ.Код_кафедры IN
SELECT КАФЕДРА.Код_кафедры FROM КАФЕДРА WHERE КАФЕДРА.Код_факультета = ФАКУЛЬТЕТ. Код_факультета))
Пример 3.
Вывести названия факультетов, на которых работает хотя бы один профессор и которые имеют более двух кафедр, при этом фонд финансирования более 100000 руб.
SELECT НАЗВАНИЕ FROM ФАКУЛЬТЕТ WHERE Фонд_фин > 100000 AND
3 <= (SELECT СOUNT(*) FROM КАФЕДРА КАФЕДРА.Код_факультета = ФАКУЛЬТЕТ. Код_факультета) AND
EXISTS (SELECT * FROM ПРЕПОДАВАТЕЛЬ
WHERE ПРЕПОДАВАТЕЛЬ.Должность = ‘Профессор’ AND
ПРЕПОДАВАТЕЛЬ.Код_кафедры IN
(SELECT КАФЕДРА.Код_кафедры FROM WHERE КАФЕДРА.Код_факультета = ФАКУЛЬТЕТ. Код_факультета))