русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор EXISTS.


Дата добавления: 2015-07-09; просмотров: 559; Нарушение авторских прав


Оператор EXISTSиспользуется для указания предикату на то, чтобы производить или не производить вывод в подзапросе, при этом EXISTS дает в качестве результата значение ИСТИНА или ЛОЖЬ. Он может работать в предикате или в комбинации с другими булевскими выражениями –AND, OR и NOT.

 

Пример 1.Нужно решить, извлекать ли данные из таблицы успеваемости, если в ней присутствуют отличные оценки.

 

SELECT *

FROMUSP

WHEREUSP.OCENKA=5

AND EXISTS

(SELECT *

FROM USP

WHEREUSP.OSENKA=5);

 

Результат запроса:

 

UNUM OCENKA UDATE SNUM PNUM

-----------------------------------------------------------------------------

1001 5 10/06/1999 3412 2001

1005 5 12/06/1999 3416 2006

 

В соотнесенном подзапросе, предложение EXISTS оценивается отдельно для каждой строки таблицы, имя которой указано во внешнем запросе, точно так же, как и другие операторы предиката, когда используется соотнесенный подзапрос.

 

Пример 2. Вывести информацию о студентах, которые имеют несколько оценок:

 

SELECT DISTINCT SNUM

FROMUSP FIRST

WHEREEXISTS

(SELECT *

FROM USP SECOND

WHERESECOND. SNUM= FIRST. SNUM

AND SECOND / PNUM < > FIRST. PNUM);

 

Результат запроса:

 

SNUM

--------

 

Для иллюстрации возможности использования комбинации из EXISTS и объединения. Усовершенствуем последний пример таким образом, чтобы выводилась более подробная информация о студентах:

 

SELECT DISTINCT FIRST. SNUM, FIRST. SFAM, FIRST.SIMA, FIRST.SOT

FROMSTUDENT FIRST, USP SECOND

WHEREEXISTS

(SELECT *

FROM USP THIRD

WHERESECOND. SNUM= THIRD. SNUM

AND SECOND . PNUM < > THIRD. PNUM)

AND FIRST. SNUM= SECOND. SNUM ;

 

Результат запроса:

 

SNUM SFAM SIMA SOTCH

-----------------------------------------------------------------



3412 Поляков Анатолий Алексеевич

 

Наиболее очевидным способом использования EXISTSявляется сочетание с оператором NOT.

 

Пример 3. Получитть информацию о студентах, имеющих только одну оценку.

 

SELECT DISTINCT FIRST. SNUM, FIRST. SFAM, FIRST.SIMA, FIRST.SOT

FROMSTUDENT FIRST, USP SECOND

WHERE NOTEXISTS

(SELECT *

FROM USP THIRD

WHERESECOND. SNUM= THIRD. SNUM

AND SECOND . PNUM < > THIRD. PNUM)

AND FIRST. SNUM= SECOND. SNUM ;

 

Результат запроса:

 

SNUM SFAM SIMA SOTCH

-----------------------------------------------------------------



3413 Старова Любовь Михайловна

 

Важным свойством EXISTSявляется то, что он не может взять агрегатную функцию в подзапросе, так как если агрегатная функция нашла какие-либо записи для операций с ними, то EXISTSбудет верен в любом случае. Выходом их такой ситуации является использование вложенного подзапроса в подзапросе, в предикате которого присутствует EXISTS.Этопозволяет тщательно структурировать запросы, делая их более понятными.

 

Пример 4. Получить информацию о студентах, имеющих более одной оценки.

 

SELECT *

FROMSTUDENT FIRST

WHEREEXISTS

(SELECT *

FROM USP SECOND

WHERE. FIRST. SNUM= SECOND. SNUM

AND 1<

(SELECT COUNT (*)

FROM USP

WHERE USP. SNUM= SECOND. SNUM));

 

Результат запроса:

 

SNUM SFAM SIMA SOTCH STIP

------------------------------------------------------------------------------

3412 Поляков Анатолий Алексеевич 25.50

 

 



<== предыдущая лекция | следующая лекция ==>
Структура вложенных запросов. | Операторы SOME и ANY.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.04 сек.