В этой главе рассматриваются элементы, которые являются общими для всех реализаций языка SQL — выражения, которые используются для извлечения и работают на утверждениях о данных, и предикатов, которые проверяют истинность этих утверждений.
В этой главе рассматриваются элементы, которые являются общими для всех реализаций языка SQL — выражения, которые используются для извлечения и работают на утверждениях о данных, и предикатов, которые проверяют истинность этих утверждений.
Выражения SQL представляют формальные методы для вычисления, преобразования и сравнения значений.Выражения SQL могут включать в себя столбцы таблиц, переменные, константы, литералы, различные операторы и предикаты, а так же другие выражения.Полный список допустимых символов (tokens) в выражениях описан ниже.
Идентификаторы столбцов из указанных таблиц, используемые ввычислениях, или сравнениях, или в качестве условия поиска. Столбецтипа массив не может быть элементом выражения, если только он непроверяется на IS [NOT] NULL
.
В выражении может содержаться ссылка на элемент массива, т.е. <array_name>[s]
, где s — индекс элемента в массиве.
Символы +
, -
, *
, /
используемые для вычисления значений.
Оператор ||
(“две вертикальные линии”) используется для соединения символьных строк.
Зарезервированные слова NOT
, AND
и OR
используются прикомбинировании простых условий поиска для создания сложныхутверждений.
Символы =
, <>
, !=
, ~=
, ^=
, <
, <=
, >
, >=
, !<
, ~<
, ^<
, !>
, ~>
и ^>
LIKE
, STARTING WITH
, CONTAINING
, SIMILAR TO
, BETWEEN
, IS [NOT]NULL
, IS [NOT] {TRUE | FALSE | UNKNOWN}
, и IS [NOT] DISTINCT FROM
Предикаты, используемые для проверки существования значений внаборе. Предикат IN может быть использован как с наборами констант,так и со скалярными подзапросами. Предикаты EXISTS, SINGULAR, ALLANY, SOME могут быть использованы только с подзапросами.
Числа, заключённые в апострофы строковые литералы, логическиезначения TRUE
, FALSE
и UNKNOWN
, псевдозначение NULL
.
Выражения, подобные строковым литералам, заключённые вапострофах, которые могут быть интерпретированы как значения даты,времени или даты-времени. Литералами дат могут быть строки изсимволов и чисел, такие как TIMESTAMP '25.12.201615:30:35'
, которые могут быть преобразованы в дату, времяили дату с временем.
Строковый литерал с описанием желаемого значения даты и/иливремени, которое можно привести к типу даты и/или времени. Дляпримера 'NOW'
, 'TODAY'
.
Встроенные контекстные переменные.
Локальные переменные, входные или выходные параметры PSQL модулей(хранимых процедур, триггеров, анонимных блоков PSQL).
В DSQL в качестве параметров запроса могут быть использованытолько позиционные параметры. Позиционные параметры представляютсобой знаки вопроса (?) внутри DSQL оператора. Доступ к такимпараметрам осуществляется по его номеру (позиции в запросеотносительно предыдущего позиционного параметра) поэтому ониназываются позиционными. Обычно компоненты доступа позволяютработать с именованными параметрами, которые они самипреобразовывают в позиционные.
Оператор SELECT заключённый в круглые скобки, который возвращаетодно единственное (скалярное) значение или множество значений (прииспользовании в предикатах существования).
Идентификаторы встроенных или внешних функций в функциональныхвыражениях.
Выражение явного преобразования одного типа данных в другой с использованием CAST
какCAST(<value> AS <datatype>)
.
Выражение CASE
и встроенные функции COALESCE
, NULLIF
.
Пара скобок ( … ) используются для группировки выражений.Операции внутри скобок выполняются перед операциями вне скобок. Прииспользовании вложенных скобок, сначала вычисляются значения самыхвнутренних выражений, а затем вычисления перемещаются наверх поуровням вложенности.
COLLATE
Предложение применяется к типам CHAR
и VARCHAR
, чтобы в указаннойкодировке установить параметры сортировки, используемые присравнении.
NEXT VALUE FOR sequence
Конструкция NEXT VALUE FOR
позволяет получить следующее значениепоследовательности, то же самое делает встроенная функция GEN_ID()
.
AT
Выражение для изменения часового пояса даты и времени.