Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Общие синтакические правила построения скалярных выражений

Скалярные выражения

 

Скалярное выражение* – это выражение, вырабатывающее результат некоторого типа, специфицированного в стандарте. Скалярные выражения являются основой языка SQL, поскольку, хотя это реляционный язык, все условия, элементы списков выборки и т.д. базируются именно на скалярных выражениях. В SQL:1999 имеется несколько разновидностей скалярных выражений. К числу наиболее важных разновидностей относятся численные выражения; выражения со значениями-строками символов; выражения со значениями-временем и датами; выражения со значениями-временными интервалами; булевские выражения. Мы не будем слишком глубоко вникать в тонкости, но, тем не менее, приведем некоторые базовые спецификации и пояснения.

 

Конечно, материал этой лекции опирается на разд. 11.2 и 11.4 Лекции 11, в которых кратко упоминались некоторые базовые операции над значениями типов данных SQL, и обсуждался оператор CAST, позволяющий разрешенным образом изменять тип данных результата скалярного выражения.

 

Прежде, чем перейти к конкретным видам скалярных выражений, рассмотрим некоторые более общие языковые конструкции, на которых эти выражения базируются.

 

В SQL:2003 имеются девять разновидностей выражений в соответствии с девятью категориями типов данных, значения которых вырабатываются при вычислении выражения.

 

value_expression::=
numeric_value_expression
| string_value_expression
| datetime_value_expression
| interval_value_expression
| boolean_value_expression
| array_value_expression

| multiset_value_expression
| row_value_expression
| user_defined_value_expression
| reference_value_expression

 

Как мы отмечали в начале этого раздела, мы ограничимся обсуждением первых пяти разновидностей выражений. В основе построения этих видов выражений лежит первичное выражение, определяемое следующим синтаксическим правилом:

 

value_expression_primary::=
unsigned_value_specification
| column_reference
| set_function_specification
| scalar_subquery
| case_expression
| (value_expression)
| cast_specification

 

В пределах этого курса можно считать, что спецификация беззнакового значения (unsigned_value_specification) – это всегда литерал соответствующего типа или вызов ниладической функции (например, CURRENT_USER)*. При вычислении выражения V для строки таблицы каждая ссылка на столбец (column_reference) этой таблицы, непосредственно содержащаяся в V, рассматривается как ссылка на значение данного столбца в данной строке. Агрегатные функции (функции над множествами – set_function_specification) обсуждаются в следующих лекциях. Если первичное выражение является скалярным подзапросом (scalar_subquery, или подзапросом, результатом которого является таблица, состоящая из одной строки и одного столбца), и результат подзапроса пуст, то результатом первичного выражения является неопределенное значение. (Подзапросы обсуждаются следующей лекции, выражения с переключателем (case_expression) рассматриваются ниже в этом разделе.) Оператор явного преобразования типов (cast_specification) мы обсуждали в разд 11.4 Лекции 11.

 

<== предыдущая лекция | следующая лекция ==>
Введение. Несмотря на то, что язык SQL является полным языком баз данных, включающим множество разнообразных средств определения схемы | Численные выражения
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 456; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.