Строковые литералы
Строки — это последовательности символов, заключённые в кавычки.
Синтаксис:
[_charset_name]'string' [COLLATE collation_name]
Например:
'The MariaDB Foundation' _utf8 'Foundation' COLLATE utf8_unicode_ci;
Строки могут быть заключены в одинарные или двойные кавычки (должен использоваться один и тот же символ для открытия и закрытия строки).
Стандарт ANSI SQL не допускает использование двойных кавычек для заключения строк, и хотя MariaDB по умолчанию разрешает их, если на сервере MariaDB включён режим ANSI_QUOTES_SQL SQL_MODE, двойные кавычки будут рассматриваться как используемые для идентификаторов, а не строк.
Строки, стоящие рядом, автоматически конкатенируются. Например:
'The ' 'MariaDB ' 'Foundation'
и
'The MariaDB Foundation'
эквивалентны.
Символ \ (обратная косая черта) используется для экранирования символов (если режим SQL_MODE не установлен в NO_BACKSLASH_ESCAPES). Например:
'MariaDB's new features'
— это некорректная строка из-за одинарной кавычки посредине строки, которая воспринимается как закрывающая строку, но на самом деле является частью строки — апострофом. Обратная косая черта помогает в таких ситуациях:
'MariaDB\'s new features'
теперь — это корректная строка, и при выводе она будет отображена без обратной косой черты.
SELECT 'MariaDB\'s new features'; +------------------------+ | MariaDB's new features | +------------------------+ | MariaDB's new features | +------------------------+
Ещё один способ экранирования символа кавычки — повторение его дважды:
SELECT 'I''m here', """Double"""; +----------+----------+ | I'm here | "Double" | +----------+----------+ | I'm here | "Double" | +----------+----------+
Последовательности экранирования
Существуют и другие последовательности экранирования. Вот полный список:
| Последовательность экранирования | Символ |
|---|---|
\0 |
ASCII NUL (0x00). |
\' |
Одинарная кавычка (“'”). |
\" |
Двойная кавычка (“"”). |
\b |
Возврат на один символ влево. |
\n |
Новая строка или перевод строки. |
\r |
Возврат каретки. |
\t |
Табуляция. |
\Z |
ASCII 26 (Control+Z). См. примечание после таблицы. |
\\ |
Обратная косая черта (“\”). |
\% |
Символ “%”. См. примечание после таблицы. |
\_ |
Символ “_”. См. примечание после таблицы. |
Экранирование символов % и _ может потребоваться при использовании оператора LIKE, так как они интерпретируются как специальные символы.
Символ ASCII 26 (\Z) необходимо экранировать, когда он включается в пакетный файл, который должен быть выполнен в Windows. Причина в том, что ASCII 26 в Windows — это признак конца файла (EOF).
Обратная косая черта (\), если не используется как символ экранирования, всегда должна экранироваться. Если за ней следует символ, не указанный в таблице выше, обратные косые черты просто игнорируются.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/string-literals/