ЛЕКЦІЯ 10. Операції над множинами

Сайт: Навчально-інформаційний портал НУБіП України
Курс: Організація баз даних (КН+ІПЗ). Ч1☑️
Книга: ЛЕКЦІЯ 10. Операції над множинами
Надруковано: Гість-користувач
Дата: неділя, 15 лютого 2026, 20:59

1. Використання предикатів ANY, ALL, EXISTS і IN.


Предикати ANY І ALL слідують за одним із предикатів =, !=, >, <, <=, >= і перевіряє, чи виконується цей предикат хоча б для одного (при ANY) або для всіх (при ALL) значеннях множини, заданої в правій частині, по відношенню до елементу, заданого у лівій частині.

2. Основні поняття

Визначення

Мова SQL має три теоретико-множинні оператори:

  • üUNION,

  • üINTERSECT,

  • üMINUS.

Вони дозволяють об'єднувати, перетинати і отримувати різність двох множин. Аргументами цих операторів є відношення, отримані в результаті виконання пропозицій SELECT. Таблиці-операнди повинні бути сумісними по теоретико-множинним операціям. Це означає, що вони повинні мати однакову кількість стовпців і відповідні пари стовпців повинні мати сумісний тип даних.

Приклад 1

Вивести факультети, розташовані в корпусах 5 і 6:

SELECT Name FROM FACULTY WHERE Building = 5

INTERSECT

SELECT Name FROM FACULTY WHERE Building = 6

Або:

SELECT Name FROM FACULTY WHERE Building = 5 AND NAME IN (SELECT Name FROM FACULTY WHERE Building = 6).

Приклад 2

Вивести імена викладачів, що викладають лекції з дисципліни "Бази даних", але які не викладають лекції з дисципліни "Програмування":

SELECT T.Name FROM TEACHER T, LECTURE L, SUBJECT S

WHERE T.#T = L.T AND L.#S = S.#S AND S.Name = 'Бази даних'

MINUS

SELECT T.Name FROM TEACHER T, LECTURE L, SUBJECT S

WHERE T.#T = L.T AND L.#S = S.#S AND S.Name = 'Програмування

Або:

SELECT T.Name FROM TEACHER T, LECTURE L, SUBJECT S

WHERE T.#T = L.T AND L.#S = S.#S AND S.Name = 'Бази даних' AND

T.Name NOT IN (SELECT T.Name FROM TEACHER T, LECTURE L, SUBJECT S WHERE T.#T = L.T AND L.#S = S.#S AND S.Name = 'Програмування').

3. Використання невизначених значень

  • Якщо при завантаженні даних не введено значення в будь-яке поле таблиці, то СУБД розмістить в нього NULL-значення.

  • oАналогічне значення можна ввести в поле таблиці, виконуючи операцію змінення даних.

  • oМова SQL надає можливість маніпулювати невизначеними значеннями. При цьому використовується логіка, в якій саме NULL-значення не вважається рівним іншому NULL-значенню.

Приклад 1

Необхідно підрахувати середній фонд фінансування кафедр за умови, що фонд дійсно заданий:

SELECT AVG (Fund)

FROM DEPARTMENT

WHERE Fund IS NOT NULL

Приклад 2

Необхідно вивести імена кафедр, для яких не заданий фонд фінансування:

SELECT Name

FROM DEPARTMENT

WHERE Fund IS NOT NULL

Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання

Вирівнювання тексту Вирівнювання тексту

Ширина абзацу Ширина абзацу

0