Операция объединения.
Бинарные операции на языке структурированных запросов
Операция переименования.
Операция переименования атрибутов на языке структурированных запросов осуществляется довольно просто. А именно воплощается в действительность следующим алгоритмом:
1) в списке имен атрибутов фразы Select перечисляются те атрибуты, которые необходимо переименовать;
2) к каждому указанному атрибуту добавляется специальное ключевое слово as;
3) после каждого вхождения слова as указывается то имя соответствующего атрибута, на которое необходимо поменять имя исходное.
Таким образом, с учетом всего вышесказанного, оператор, соответствующий операции переименования атрибутов, будет выглядеть следующим образом:
Select имя атрибута 1 as новое имя атрибута 1, …
From имя отношения;
Покажем работу этого оператора на примере. Пусть дана уже знакомая нам схема отношения:
Успеваемость (№ зачетной книжки, Семестр, Код предмета, Оценка, Дата);
Пусть у нас имеется заказ поменять имена некоторых атрибутов, а именно вместо «№ зачетной книжки» должно стоять «№ зачетки» и вместо «Оценка» – «Балл».
Запишем, как будет выглядеть оператор Select, реализующий эту операцию переименования:
Select зачетной книжки as № зачетки, Семестр, Код предмета, Оценка as Балл, Дата
From Успеваемость;
Таким образом, результатом применения этого оператора будет новая схема отношения, отличающаяся от исходной схемы отношения «Успеваемость» именами двух атрибутов.
Как и унарные операции, операции бинарные также имеют свою реализацию на языке структурированных запросов или SQL. Итак, рассмотрим осуществление на этом языке уже пройденных нами бинарных операций, а именно – операций объединения, пересечения, разности, декартового произведения, естественного соединения, внутреннего и левого, правого, полного внешнего соединения.
Для того чтобы реализовать операцию объединения двух отношений приходится использовать одновременно два оператора 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;