Введение в стандарты языка баз данных SQL



         

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


Скалярное выражение - это выражение, вырабатывающее результат некоторого типа, специфицированного в стандарте. Скалярные выражения являются основой языка SQL/92, поскольку, хотя это реляционный язык, все условия, элементы списков выборки и т.д. базируются именно на скалярных выражениях. Заметим, что в SQL/89 не требовалось вводить такое отдельное понятие, поскольку единственным допустимым скалярным выражением было арифметическое (т.е. вырабатывающее число). В связи с расширением ассортимента типов и операций над их значениями, в SQL/92 появилось три разных вида скалярных выражения - численные, над строками и над временем и датами (и интервалами). Мы не будем слишком глубоко вникать в тонкости, но тем не менее, приведем некоторые базовые спецификации и пояснения.

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

Спецификация значения и спецификация цели

Эти конструкции служат для спецификации значений, не выбираемых из таблиц базы данных, а заданных пользователями. Общий синтаксис выглядит следующим образом:

<value specification> ::= <literal> |<general value specification> <unsigned value specification> ::= <unsigned literal> |<general value specification> <general value specification> ::= <parameter specification> |<dynamic parameter specification> |<variable specification> |USER |CURRENT_USER |SESSION_USER |SYSTEM_USER VALUE <simple value specification> ::= <parameter name> |<embedded variable name |<literal> <target specification> ::= <parameter specification> |<variable specification> <simple target specification> ::= <parameter name> <embedded variable name> <parameter specification> ::= & lt;parameter name> [ <indicator parameter> ] <indicator parameter> ::= [ INDICATOR ] <parameter name> <dynamic parameter specification> ::= <question mark> <variable specification> ::= <embedded variable name> [ <indicator variable> ] <indicator variable> ::= [ INDICATOR ] <embedded variable name>




Содержание  Назад  Вперед