FirebirdSQL logo

В этой главе рассматриваются элементы, которые являются общими для всех реализаций языка 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

Выражение для изменения часового пояса даты и времени.