Скобки
Скобки иногда называются операторами приоритета — это означает, что они могут использоваться для изменения приоритета других операторов в выражении. Выражения, записанные в скобках, вычисляются перед выражениями, записанными вне скобок. Скобки всегда должны содержать выражение (то есть они не могут быть пустыми), и могут быть вложенными.
Например, следующие выражения могут возвращать разные результаты:
-
NOT a OR b -
NOT (a OR b)
В первом случае NOT применяется к a, поэтому если a равно FALSE или b равно TRUE, выражение возвращает TRUE. Во втором случае NOT применяется к результату a OR b, поэтому если хотя бы одно из a или b равно TRUE, выражение равно TRUE.
Когда приоритет операторов не интуитивно понятен, вы можете использовать скобки, чтобы сделать его сразу понятным для того, кто читает утверждение.
Приоритет оператора NOT также может быть изменен флагом HIGH_NOT_PRECEDENCE SQL_MODE.
Другие применения
Скобки всегда должны использоваться для заключения подзапросов.
Скобки также могут использоваться в JOIN операторе между несколькими таблицами для определения того, какие таблицы должны быть объединены в первую очередь.
Кроме того, скобки используются для заключения списка параметров, которые должны быть переданы встроенным функциям, пользовательским функциям и хранимым процедурам. Однако, если параметр не передается в хранимую процедуру, скобки необязательны. Для встроенных функций и пользовательских функций пробелы не допускаются между именем функции и открывающей скобкой, если не установлен IGNORE_SPACE SQL_MODE. Для хранимых процедур (и для функций, если IGNORE_SPACE установлен) пробелы разрешены перед открывающей скобкой, включая символы табуляции и новой строки.
Синтаксические ошибки
Если открывающих скобок больше, чем закрывающих, ошибка обычно выглядит так:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' a t line 1
Обратите внимание на пустую строку.
Если закрывающих скобок больше, чем открывающих, ошибка обычно выглядит так:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Обратите внимание на заключенную в кавычки закрывающую скобку.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/parentheses/