Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД SQL(засоби ман_пулювання даними.Нетрив_альн_ запити).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
527.76 Кб
Скачать

9.8. Операція ділення

Операція ділення може бути реалізована реченням SELECT з корельованими вкладеними підзапитами з використанням предикату EXISTS.

Реляційна алгебра: A(X,Y) DEVIDE BY B(Y)

Оператор SQL:

                  SELECT DISTINCT A.X

                         FROM A

                         WHERE NOT EXIST

                              (SELECT *

                                     FROM B

                                     WHERE NOT EXIST

                                           (SELECT *

                                               FROM A as A1

                                             WHERE A1.X = A.X

                                                              AND A1.Y = B.Y));

Такі конструкції необхідні у запитах зі словом “всі”.

Приклад. Вибрати імена та прізвища клієнтів, які купили всі товари (товари всіх назв).

SELECT DISTINCT Клієнт.Прізвище, Клієнт.Ім’я

                         FROM Клієнт

                         WHERE NOT EXIST

                              (SELECT *

                                   FROM Товар

                                   WHERE NOT EXIST

                                             (SELECT *

                                             FROM Угода

                                          WHERE Угода.КодТовару = Товар.КодТовару

                                                        AND Угода.КодКлієнта = Клієнт.КодКлієнта));