Объединение множеств
⇐ ПредыдущаяСтр 3 из 3 Объединением двух множеств называется множество всех элементов, принадлежащих какому-либо одному или обоим множествам. Поскольку отношение является множеством записей, то можно построить объединение двух отношений. Результатом будет отношение, состоящее из всех строк, входящих в какое-либо одно или в оба сразу первоначальные отношения. Однако строки двух отношений должны иметь одну и ту же форму, т.е. множества должны быть совместимы по объединению. В языке 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 - Объединение двух намазов в одно время (джамус-салят) Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|