Spec-Zone .ru
спецификации, руководства, описания, API

9.5. Синтаксис выражения

Следующие правила определяют синтаксис выражения в MySQL. Грамматика, показанная здесь, основана на поданном sql/sql_yacc.yy файл исходных дистрибутивов MySQL. См. примечания после грамматики для дополнительной информации о некоторых из сроков. Приоритет оператора дается в Разделе 12.3.1, "Приоритет Оператора".

expr:    expr OR expr  | expr || expr  | expr XOR expr  | expr AND expr  | expr && expr  | NOT expr  | ! expr  | boolean_primary IS [NOT] {TRUE | FALSE | UNKNOWN}  | boolean_primaryboolean_primary:    boolean_primary IS [NOT] NULL  | boolean_primary <=> predicate  | boolean_primary comparison_operator predicate  | boolean_primary comparison_operator {ALL | ANY} (subquery)  | predicatecomparison_operator: = | >= | > | <= | < | <> | !=predicate:    bit_expr [NOT] IN (subquery)  | bit_expr [NOT] IN (expr [, expr] ...)  | bit_expr [NOT] BETWEEN bit_expr AND predicate  | bit_expr SOUNDS LIKE bit_expr  | bit_expr [NOT] LIKE simple_expr [ESCAPE simple_expr]  | bit_expr [NOT] REGEXP bit_expr  | bit_exprbit_expr:    bit_expr | bit_expr  | bit_expr & bit_expr  | bit_expr << bit_expr  | bit_expr >> bit_expr  | bit_expr + bit_expr  | bit_expr - bit_expr  | bit_expr * bit_expr  | bit_expr / bit_expr  | bit_expr DIV bit_expr  | bit_expr MOD bit_expr  | bit_expr % bit_expr  | bit_expr ^ bit_expr  | bit_expr + interval_expr  | bit_expr - interval_expr  | simple_exprsimple_expr:    literal  | identifier  | function_call  | simple_expr COLLATE collation_name  | param_marker  | variable  | simple_expr || simple_expr  | + simple_expr  | - simple_expr  | ~ simple_expr  | ! simple_expr  | BINARY simple_expr  | (expr [, expr] ...)  | ROW (expr, expr [, expr] ...)  | (subquery)  | EXISTS (subquery)  | {identifier expr}  | match_expr  | case_expr  | interval_expr

Примечания:

Для синтаксиса литерального значения см. Раздел 9.1, "Литеральные значения".

Для синтаксиса идентификатора см. Раздел 9.2, "Имена объектов Схемы".

Переменные могут быть пользовательскими переменными, системными переменными, или сохраненными локальными переменными программы или параметрами:

param_marker '?' как использующийся в готовых операторах для заполнителей. См. Раздел 13.5.1,"PREPARE Синтаксис".

(subquery) указывает на подзапрос, который возвращает единственное значение; то есть, скалярный подзапрос. См. Раздел 13.2.10.1, "Подзапрос как Скалярный Операнд".

{identifier expr} синтаксис escape ODBC и принимается для совместимости ODBC. Значение expr. Изогнутые фигурные скобки в синтаксисе должны быть записаны буквально; они не метасинтаксис как использующийся в другом месте в описаниях синтаксиса.

match_expr указывает на a MATCH выражение. См. Раздел 12.9, "Полнотекстовые Функции Поиска".

case_expr указывает на a CASE выражение. См. Раздел 12.4, "Функции Потока управления".

interval_expr представляет временной интервал. Синтаксис INTERVAL expr unit, где unit спецификатор такой как HOUR, DAY, или WEEK. Для полного списка unit спецификаторы, см. описание DATE_ADD() функция в Разделе 12.7, "Дата и Функции Времени".

Значение некоторых операторов зависит от режима SQL:

См. Раздел 5.1.7, "Режимы SQL Сервера".