Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lect3_m3_ipovs_ipovs_bd_230100.doc
Скачиваний:
28
Добавлен:
27.03.2016
Размер:
94.72 Кб
Скачать

Условия поиска с вложенным запросом

Вложенный запрос может являться частью условия поиска в предложении WHERE или HAVING. Возможны следующие условия поиска с вложенным запросом:

1. Сравнение с результатом вложенного запроса. Сравнивает значение выражения с одним значением, возвращенным вложенным запросом:

проверяемое_выражение

Вложенный _запрос

=

< >

<

< =

>

> =

2.Проверка на принадлежность результатам вложенного запроса. Проверяет значение выражения на равенство с одним из значений множества, возвращенного вложенным запросом:

Пример запроса: вывести список квартир, в которых не установлены телефоны:

SELECT * FROM FLAT

WHERE ADR NOT IN (SELECT ADR FROM TPHONE)

3.П

Вложенный _запрос

роверка на существование. Проверяет наличие строк в таблице результатов вложенного запроса:

EXISTS

NOT

Пример запроса: вывести список жителей, имеющих источник дохода с размером большим 1000 руб.:

SELECT * FROM PERSON

WHERE EXISTS (SELECT * FROM PROFIT, HAVE_D

WHERE PERSON.NOM=HAVE_D.NOM

AND PROFIT.ID=HAVE_D.ID

AND PROFIT. MONEY>1000)

Обратите внимание на то, что условие поиска EXISTS не использует результаты вложенного запроса. Проверяется только наличие результатов. По этой причине в SQL смягчается правило о единственности возвращаемого столбца во вложенном запросе и во вложенном запросе при проверке EXISTS допускается использование формы SELECT *.

4. Многократное сравнение. Сравнивает значение выражения с каждым из значений множества, возвращаемого вложенным запросом:

проверяемое _выражение

Вложенный _запрос

=ANY

< >ALL

<

< =

>

> =

При проверке ANY проверяемое значение поочередно сравнивается с каждым значением, содержащимся в столбце, который сформирован вложенным запросом. Если любое из этих сравнений дает результат TRUE, то проверка ANY возвращает значение TRUE.

При проверке ALL проверяемое значение поочередно сравнивается с каждым значением, содержащимся в столбце данных, выбранных вложенным запросом. Если все сравнения дают результат TRUE, то проверка ALL возвращает значение TRUE.