Обозначение |
Сокращения |
year |
yy, yyyy |
quarter |
qq, q |
month |
mm, m |
dayofyear |
dy, y |
day |
dd, d |
week |
wk, ww |
hour |
hh |
minute |
mi |
second |
ss, s |
millisecond |
ms |
2.3. Способы реализации операций реляционной алгебры в Transact-SQL
В теории реляционных баз данных известен такой аппарат, как реляционная алгебра. Она представляет собой набор операций, выполняемых над отношениями (таблицами) с целью получения новых отношений. Поиск информации в реляционных БД теоретически сводится к выполнению некоторого множества операций над исходными таблицами БД. На практике для этих целей используется оператор select, синтаксис которого позволяет конструировать как простые, так и довольно сложные запросы. Понятно, что реляционная алгебра и способы записи оператора select должны быть взаимосвязаны. И действительно, для любой операции реляционной алгебры существует шаблон (возможно, даже не один) select-вызова, что показано в табл. 7. Следует заметить, что в табл. 7 не рассмотрены операции «пересечение» и «разность», поскольку они не имеют реализации в Transact-SQL.
Таблица 7 – Использование оператора select для выполнения конкретных реляционных операций
Операция |
Запись select-вызова в Transact-SQL |
Примечание |
Объединение |
select * from R1 union select * from R2 |
Операции объединения соответствует ключевое слово union |
Декартово произведение |
select * from R1, R2 |
|
Ограничение |
select * from R where C(x) |
Для задания ограничивающего условия служит секция where оператора select x – простой или составной атрибут отношения R |
Проекция |
select A1,…,An from R |
Множество атрибутов, по которому выполняется проекция, задается в списке выражений сразу после ключевого слова select |
Тета-соединение |
select * from R1, R2 where C(x) или select * from R1 join R2 on C(x) |
Здесь x – атрибут (простой или составной) отношения |
Продолжение таблицы 7
Эквисоединение |
select * from R1, R2 where R1.k = R2.k или select * from R1 inner join R2 on R1.k = R2.k |
Атрибут k является общим для обоих отношений |
Естественное соединение |
select k, x11, x12, …, x1n, x21, x22, …, x2m from R1, R2 where R1.k = R2.k |
Атрибут k является общим для обоих отношений; атрибуты x11, …, x1n принадлежат отношению R1; атрибуты x21, …, x2m – отношению R2 |
Внешнее соединение |
select * from R1 full outer join R2 on R1.k = R2.k |
Атрибут k является общим для обоих отношений |
Левое внешнее соединение |
select * from R1 left outer join R2 on R1.k = R2.k |
Атрибут k является общим для обоих отношений |
Правое внешнее соединение |
select * from R1 right outer join R2 on R1.k = R2.k |
Атрибут k является общим для обоих отношений |
Расширенная проекция |
select f(x) from R |
Здесь f(x) может пониматься как одна функция от простого или составного атрибута x, или как множество функций, примененных к простым атрибутам, входящим в составной атрибут x |
Расширенная проекция с переименованием атрибутов |
select f(x) as y from R |
|
Сортировка |
select * from R order by x |
Продолжение таблицы 7
Агрегирование |
select f(x) from R |
Здесь f(x) – агрегатная функция |
Группирование |
select x from R group by x |
x – простой или составной атрибут отношения R |
Группирование с агрегированием |
select x, f(y) from R group by x |
x и y – атрибуты отношения R, не обязательно совпадающие |
Группирование с ограничением |
select x from R group by x having C(y) |
x и y – атрибуты отношения R, не обязательно совпадающие |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.