yandex rtb 1
ГоловнаЗворотній зв'язок
yande share
Главная->Різні конспекти лекцій->Содержание->2.7 Використання об'єднання, перетинання й різниці

Організація баз даних і знань

2.7 Використання об'єднання, перетинання й різниці

Приклад. Одержати імена постачальників, що мають статус, більший 3 або, що поставляють хоча б одну деталь номер 2 (об'єднання двох підзапитів - ключове слово UNION):

SELECT P.PNAME

FROM P

WHERE P.STATUS > 3  UNION SELECT P.PNAME

    FROM P, PD

    WHERE P.PNUM = PD.PNUM AND

      PD.DNUM = 2;

Результуючі таблиці поєднуваних запитів повинні бути сумісні, тобто мати однакову кількість стовпців й однакові типи стовпців у порядку їхнього перерахування. Не потрібно, щоб поєднувані таблиці мали б однакові імена колонок. Це відрізняє операцію об'єднання запитів у SQL від операції об'єднання у реляційній алгебрі. Найменування колонок у результуючому запиті будуть автоматично взяті з результату першого запиту в об'єднанні.

Приклад. Одержати імена постачальників, що мають статус, більший 3 й одночасно поставляють хоча б одну деталь номер 2 (перетинання двох підзапитів - ключове слово INTERSECT):

SELECT P.PNAME

FROM P

WHERE P.STATUS > 3 INTERSECT

    SELECT P.PNAME

    FROM P, PD

    WHERE P.PNUM = PD.PNUM AND

                   PD.DNUM = 2;

Приклад. Одержати імена постачальників, що мають статус, більший 3, за винятком тих, хто поставляє хоча б одну деталь номер 2 (різниця двох підзапитів - ключове слово EXCEPT):

SELECT P.PNAME

FROM P

WHERE P.STATUS > 3 EXCEPT

    SELECT P.PNAME

    ROM P, PD

    WHERE P.PNUM = PD.PNUM AND

                      PD.DNUM = 2;

 

24