Spec-Zone .ru
спецификации, руководства, описания, API
|
Следующие правила определяют синтаксис выражения в MySQL. Грамматика, показанная здесь, основана на поданном
sql/sql_yacc.yy
файл исходных дистрибутивов MySQL. См. примечания после грамматики
для дополнительной информации о некоторых из сроков. Приоритет оператора дается в Разделе
12.3.1, "Приоритет Оператора".
expr
:expr
ORexpr
|expr
||expr
|expr
XORexpr
|expr
ANDexpr
|expr
&&expr
| NOTexpr
| !expr
|boolean_primary
IS [NOT] {TRUE | FALSE | UNKNOWN} |boolean_primary
boolean_primary
:boolean_primary
IS [NOT] NULL |boolean_primary
<=>predicate
|boolean_primary
comparison_operator
predicate
|boolean_primary
comparison_operator
{ALL | ANY} (subquery
) |predicate
comparison_operator
: = | >= | > | <= | < | <> | !=predicate
:bit_expr
[NOT] IN (subquery
) |bit_expr
[NOT] IN (expr
[,expr
] ...) |bit_expr
[NOT] BETWEENbit_expr
ANDpredicate
|bit_expr
SOUNDS LIKEbit_expr
|bit_expr
[NOT] LIKEsimple_expr
[ESCAPEsimple_expr
] |bit_expr
[NOT] REGEXPbit_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
/bit_expr
|bit_expr
DIVbit_expr
|bit_expr
MODbit_expr
|bit_expr
%bit_expr
|bit_expr
^bit_expr
|bit_expr
+interval_expr
|bit_expr
-interval_expr
|simple_expr
simple_expr
:literal
|identifier
|function_call
|simple_expr
COLLATEcollation_name
|param_marker
|variable
|simple_expr
||simple_expr
| +simple_expr
| -simple_expr
| ~simple_expr
| !simple_expr
| BINARYsimple_expr
| (expr
[,expr
] ...) | ROW (expr
,expr
[,expr
] ...) | (subquery
) | EXISTS (subquery
) | {identifier
expr
} |match_expr
|case_expr
|interval_expr
Примечания:
Для синтаксиса литерального значения см. Раздел 9.1, "Литеральные значения".
Для синтаксиса идентификатора см. Раздел 9.2, "Имена объектов Схемы".
Переменные могут быть пользовательскими переменными, системными переменными, или сохраненными локальными переменными программы или параметрами:
Пользовательские переменные: Раздел 9.4, "Определяемые пользователем Переменные"
Системные переменные: Раздел 5.1.5, "Используя Системные Переменные"
Локальные переменные: Раздел
13.6.4.1, "Локальная переменная DECLARE
Синтаксис"
Параметры: Раздел
13.1.12,"CREATE PROCEDURE
и CREATE
FUNCTION
Синтаксис"
param_marker
'?'
как использующийся в
готовых операторах для заполнителей. См. Раздел 13.5.1,"PREPARE
Синтаксис".
(
указывает на подзапрос, который
возвращает единственное значение; то есть, скалярный подзапрос. См. Раздел
13.2.10.1, "Подзапрос как Скалярный Операнд". subquery
)
{
синтаксис escape ODBC и принимается для совместимости
ODBC. Значение identifier
expr
}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:
По умолчанию, ||
логическое OR
оператор. С PIPES_AS_CONCAT
включенный, ||
конкатенация строк, с приоритетом между ^
и унарные операторы.
По умолчанию, !
имеет более высокий приоритет чем NOT
. С
HIGH_NOT_PRECEDENCE
включенный, !
и
NOT
имейте тот же самый приоритет.