Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Объединение множеств




Объединением двух множеств называется множество всех элементов, принадлежащих какому-либо одному или обоим множествам. Поскольку от­ношение является множеством записей, то можно построить объединение двух отношений. Результатом будет отношение, состоящее из всех строк, входящих в какое-либо одно или в оба сразу первоначальные отношения. Однако строки двух отношений должны иметь одну и ту же форму, т.е. мно­жества должны быть совместимы по объединению.

В языке SQL две таблицы совместимы по объединению и к ним может быть применен оператор объединения UNION тогда и только тогда, когда:

1) они имеют одинаковое число полей, например, m;

2) для всех i (i = 1…m) i-e поле первой таблицы и i-е поле второй таб­лицы имеют в точности одинаковый тип данных.

В SQL-92 реализованы некоторые операции реляционной алгебры в явном виде с помощью операторов: UNION, INTERSECT, EXCEPT, JOIN.

По отношению к таблицам операторы объединения (UNION), пересе­чения (INTERSECT) и разности (EXCEPT) можно применять только в слу­чае объединительной совместимости.

Пример 1. SQL-запрос

SELECT STOCK

FROM GOODS

WHERE UNITPRICE>1000

UNION

SELECT STOCK

FROM ORDSALE

WHERE CUSTOMERNO=23

предназначен для выбора кодов товаров, которые имеют стоимость более 1000, либо приобретаются покупателем с кодом 23 (либо и то, и другое).

Используя оператор UNION, можно исключить из результатов выбор­ки повторяющиеся значения. Поэтому в результирующей таблице каждый товар присутствует только один раз. Если это не устраивает пользователя, то вместо оператора UNION используют ALL. Тогда повторы не будут исклю­чены из выборки.

Оператором UNION можно соединить любое количество конструкций SELECT

Пример 2. С помощью SQL-запроса

SELECT STOCK

FROM GOODS

WHERE UNITPRICE>1000

UNION

SELECT STOCK

FROM ORDSALE

WHERE CUSTOMERNO=23

UNION

SELECT STOCK

FROM GOODS

WHERE UNITPRICE < 500

пользователь может получить информацию о кодах товаров, которые имеют стоимость более 1000, либо приобретены покупателем с кодом 23. либо име­ют цену менее 500.

Если к запросу, приведенному в примере 1, добавить строку OR UNITPRICE < 500, то его результирующая таблица будет аналогична ре­зультирующей таблице, соответствующей запросу 2.

Оператор ORDER BY в запрос с использованием оператора UNION может входить только в последнее предложение SELECT. При использова­нии критерия упорядочивания используются номера полей результирующей таблицы.

 

Пример с включением константы в результирующую таблицу:

SELECT SТОСК,"Стоимость товара >1000S"

FROM GOODS WHERE UNITPRICE > 1000

UNION SELECT STOCK, "Товар куплен покупателем 23"

FROM ORDSALE WHERE CUSTOMERNO=23

ORDER BY 2,1

 

Другой синтаксис оператора объединения:

(SELECT*FROM STOCK)

UNION

(SELECT*FROM ORDSALE)

Еще один вариант запроса:

SELECT*FROM (TABLE STOCK UNION TABLE ORDSALE)

Если эти операции необходимо применить к отдельным столбцам, то используют команду CORRESPONDING BY (имя_поля). В этом случае объединительная совместимость таблиц не требуется, но обязательно указан­ные поля должны иметь одинаковый тип данных.

Поделиться:





Читайте также:

G - Объединение двух намазов в одно время (джамус-салят)
Внешнее объединение
Вопрос 51: Образование ФРГ. Основные черты Боннской конституции 1949 г. Объединение Германии в 1990 г. и его конституционное закрепление
Детское общественное объединение «Цвет нации»
Иван 3 – «государь Всея Руси». Объединение русских земель вокруг Москвы. Формирование сословной системы организации общества.
Как делать объединение таблицы с собой ?
Кандидаты, баллотирующиеся только в составе списка кандидатов, выдвинутого избирательным объединением, не вправе создавать собственные избирательные фонды.
Л 1. разнообразие, различие, многообразие; 2. ряд, множество; 3. сорт, вид
Найти точку безубыточности (порог рентабельности), какое количество напитка должно продать объединение, чтобы получить прибыль в размере 80000 рублей.
НАСЛЕДНИКИ ХЛОДВИГА И ОБЪЕДИНЕНИЕ ЗЕМЕЛЬ ГАЛЛИИ 511-561 ГОДЫ






Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...