Литералы, операторы и выражения

Условные обозначения

[ ] — в эти скобки заключаются необязательные синтаксические единицы
{ } — конструкция, заключенная в эти скобки, должна рассматриваться как одна синтаксическая единица
| — используется для разделения альтернативных синтаксических единиц
— указывает на то, что непосредственно предшествующая синтаксическая единица может повторяться один или несколько раз

text — ‘[символ | '']…’
integer — цифра[цифра]…
number — [+|-]{цифра[цифра]…[.][цифра]…|.цифра[цифра]…}[{e|E}[+|-]цифра[цифра]…]
expr — любое выражение
Expr_list — (expr [, expr] …)

Иерархия операторов

Оператор Описание
() Подавляет обычные правила старшинства операций.
** NOT Возведение в степень и логическое отрицание.
+ - Знак, предшествующий числовому выражению.
* / Умножение и деление.
+ - Сложение и вычитание.
|| Сочленение текстовых выражений и (или) констант.
:= Присвоение значения переменной пользователя.
=, <>, <, >,
<=, >=, IS NULL,
LIKE, IN, BETWEEN
Операторы сравнения,
используемые при построении условий
AND Логическое «И»
OR Логическое «ИЛИ»

Синтаксис выражений (expr)

1-я форма: { [[schema.]{table | view | snapshot }.] {column | pseudo-column | ROWLABEL}
 | ‘text’ | number | sequence.{CURRVAL | NEXTVAL} | NULL }
2-я форма: function_name [( [DISTINCT | ALL] expr [, expr] … )]
3-я форма: { (expr) | +expr | -expr | PRIOR expr | expr * expr | expr / expr | expr + expr | expr – expr | expr || expr }

Decode_expr: DECODE( expr, search, result [, search, result] … [, default] )
Если значение expr = search, то возвращает значение result, иначе значение default или NULL (при отсутствии default).

Синтаксис условий (condition)

1-я форма: { expr {= | <> | > | < | >= | <=} {expr | (subquery)} | expr_list {= | <>} (subquery) }
2-я форма: { expr {= | <> | > | < | >= | <=} {ANY | SOME | ALL} {expr_list | (subquery)} | expr_list {= | <>} {ANY | SOME | ALL} ( { expr_list [, expr_list] … | subquery} ) }
3-я форма: { expr [NOT] IN {expr_list | (subquery)} | expr_list [NOT] IN ( { expr_list [, expr_list]… | subquery} ) }
4-я форма: expr [NOT] BETWEEN expr AND expr
5-я форма: expr IS [NOT] NULL
6-я форма: EXISTS (subquery)
7-я форма: char1 [NOT] LIKE char2 [ESCAPE 'c']
8-я форма: { ( условие ) | NOT условие | условие AND условие | условие OR условие }

Логические операторы

NOT — Реверсирование результата логического выражения (условия).

NOT   | true   false  null
------|-------------------
      | false  true   null

AND — Логическая операция «И» соединяющая два или несколько условий (логических выражений). В зависимости от истинности (true) или ложности (false) этих условий результат определяется по правилам:

AND   | true   false  null
------|--------------------
true  | true   false  null
false | false  false  false
null  | null   false  null

OR — Логическая операция «ИЛИ» соединяющая два или несколько условий (логических выражений). В зависимости от истинности (true) или ложности (false) этих условий результат определяется по правилам:

OR    | true   false  null
------|-------------------
true  | true   true   true
false | true   false  null
null  | true   null   null

Операторы, используемые в предложении SELECT

UNION — Объединение двух запросов; результат состоит из неповторяющиеся строк, выданных каждым из объединяемых запросов.
UNION ALL — Объединение двух запросов; результат состоит из всех строк, выданных каждым из объединяемых запросов.
INTERSECT — Комбинация двух запросов; результат состоит из строк, которые выданы как первым, так и вторым запросом.
MINUS — Комбинация двух запросов; результат состоит из строк, которые выданы первым запросом, но не выданы вторым запросом.
(+) — Оператор внешнего соединения.
* — Заменяет список имен всех столбцов таблицы или представления.
PRIOR — Используется в древовидных структурах для указания направления просмотра: от корня до листьев или от листьев до корня.
ALL — Сохраняет дубликаты строк в результате запроса (ALL устанавливается по умолчанию).
DISTINCT — Исключает дубликаты строк из результата запроса.

Оставить комментарий