Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fondovi-lekcii.doc
Скачиваний:
20
Добавлен:
10.11.2018
Размер:
4.09 Mб
Скачать

Модуль 2 Тема 11. Оператор exists. Сумування і групування даних.

    1. Оператор EXISTS.

    2. Використання EXISTS з співвіднесеними підзапитами.

    3. Комбінація оператора EXISTS і з’єднання.

    4. Використання NOT EXISTS.

    5. Використання складних підзаписів з оператором EXISTS.

    1. Агрегатні функції.

    2. Правила опрацювання значення NULL агрегатними функціями.

    3. Опрацювання унікальних записів агрегатними функціями.

    4. Агрегатні функції і значення NULL.

  1. Сумування і групування даних.

    1. Секція HAVING – умова відбору груп.

    2. Обмеження на умову відбору груп.

    3. Значення NULL і умова відбору груп.

    4. Секція HAVING без секції GROUP BY.

1.1. Оператор exists.

EXISTS – це логічний оператор. Це означає, що він може використовуватися в предикаті або в комбінації з іншими виразами, які використовують оператори AND, OR і NOT. Він бере підзапит як аргумент і оцінює його як вірний, якщо той здійснює довільний вивід, або як невірний, якщо той не робить цього. Цим він відрізняється від інших операторів предикату, в яких аргумент не може бути невідомим. Наприклад, ми хочемо вибрати деякі дані з таблиці Замовників лише тоді, коли один або більше замовників в цій таблиці знаходятся в San Jose:

SELECT cnum, cname, city

FROM Customers

WHERE EXISTS

(SELECT *

FROM Customers

WHERE city = “San Jose”);

=============== SQL Execution Log ============

| SELECT snum, sname, city |

| FROM Customers |

| WHERE EXISTS |

| (SELECT * |

| FROM Customers |

| WHERE city = “San Jose”); |

| ============================================= |

| cnum cname city |

| ----- -------- ---- |

| 2001 Hoffman London |

| 2002 Giovanni Rome |

| 2003 Liu San Jose |

| 2004 Grass Berlin |

| 2006 Clemens London |

| 2008 Cisneros San Jose |

| 2007 Pereira Rome |

===========================================

Внутрішній запит вибирає всі дані для всіх замовників в San Jose. Оператор EXISTS у зовнішньому предикаті відмічає, що деякий вивід було здійснено подзапитом, що робить предикат істинним. Підзапит було виконано лише один раз для всього зовнішнього запиту, і він, відповідно, має одне значення у всіх випадках. Тому EXISTS, коли він використовується таким чином, робить предикат істинним або неістинним для всіх рядків відразу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]