Для того чтобы реализовать операцию объединения
двух отношений приходится использовать одновременно два оператора
Select, каждый из которых соответствует какому-то одному из исходных
отношений-операндов. И к этим двум базовым операторам Select необходимо
применить специальную операцию Union. Учитывая все вышесказанное,
запишем, как же операция объединения будет выглядеть с использованием
семантики языка структурированных запросов:
Select список имен атрибутов отношения 1
From имя отношения 1
Union
Select список имен атрибутов отношения 2
From имя отношения 2;
Важно заметить, что списки имен атрибутов
двух объединяемых отношений должны ссылаться на атрибуты совместимых
типов и быть перечислены в согласованном порядке. Если это требование не
соблюдать, ваш запрос не сможет быть выполнен, и компьютер выдаст
сообщение об ошибке.
Но, что интересно отметить, сами имена атрибутов в этих
отношениях могут быть различными. В таком случае результирующему
отношению приписываются имена атрибутов, указанные в первом операторе
Select.
Также необходимо знать, что использование операции Union
предполагает автоматическое исключение из результирующего отношения
всех дубликатов кортежей. Поэтому, если вам нужно, чтобы все
повторяющиеся строки в конечном результате сохранились, вместо операции
Union следует применять модификацию этой операции – операцию Union All. В таком случае операция объединения двух отношений будет выглядеть следующим образом:
Select список имен атрибутов отношения 1
From имя отношения 1
Union All
Select список имен атрибутов отношения 2
From имя отношения 2;
В этом случае из результирующего отношения дубликаты кортежей удаляться не будут.
Используя уже упоминавшееся ранее обозначение для
необязательных элементов и опций в операторах Select, запишем самый
общий вид операции объединения двух отношений на языке структурированных
запросов:
Select список имен атрибутов отношения 1
From имя отношения 1
Union [All]
Select список имен атрибутов отношения 2
From имя отношения 2;
|