Литералы
Строкой является последовательность символов, которые заключены в одинарные кавычки (‘’).
В строке специальное значение имеют некоторые последовательности символов, которые начинаются обратным слешем (‘$\setminus$’).
В MySQL используются такие последовательности:
- $\setminus$0 – ноль в ASCII коде;
- $\setminus$' – одинарная кавычка (‘'’);
- $\setminus$" – двойная кавычка (‘"’);
- $\setminus$b – вернуться на один символ;
- $\setminus$n – перевод сроки (новая строка);
- $\setminus$r – перевод каретки;
- $\setminus$t – табуляция;
- $\setminus$z – (Control-Z) таблицы ASCII(26);
- $\setminus \setminus$ – обратный слеш;
- $\setminus$% – процент ‘%’;
- $\setminus$'_' – подчеркивание.
Обратим внимание, что при использовании последовательностей '$\setminus$%' или '$\setminus$_' в некоторых строках будут возвращаться их значения, а не соответствующие символы.
Для вставки в строку двоичных данных (например, BLOB), необходимо представить следующие символы в виде escape-последовательностей:
- 0 необходимо представить в виде '$\setminus$0';
- обратный слеш $\setminus$ необходимо представить как '$\setminus \setminus$';
- единичную кавычку ' – '$\setminus$'';
- двойную кавычку " – '$\setminus$"'.
Числа
Целые числа записываются в виде последовательности цифр. Числа с плавающей точкой записывается через точку. Для обозначения отрицательных чисел используется символ ‘-’.
Шестнадцатеричные величины
В числовом формате шестнадцатеричное число имеет все свойства целого числа, которое имеет 64-разрядную точность. В строковом формате шестнадцатеричное число является двоичной строкой, каждая пара шестнадцатеричных разрядов которой конвертируется в символ:
Значение NULL
Значение NULL определяет отсутствие данных. Для числового типа оно не является нулем, а для строкового типа – пустой строкой.
Имена баз данных и таблиц
Для имен баз данных, таблиц, столбцов, псевдонимов и индексов приняты одинаковые правила.
Идентификаторы (имена БД, таблиц и столбцов), начиная с версии MySQL 3.23.6, принято помещать в одиночные скобки ‘`’.
Обратим внимание, что не стоит использовать символ 0 и 255 в ASCII или кавычек в идентификаторе.
В случае, когда имя идентификатора совпадает со служебным словом или включает специальный символ, нужно обязательно помещать его в обратные кавычки `:
Рекомендуется не использовать имена, похожие на 1e, т.к. выражение 1e+1 не будет однозначным и может быть интерпретировано как выражение 1e + 1 и как число 1e+1.
Выражением .tbl_name описывается таблица tbl_name в текущей БД. Такой синтаксис был принят с целью обеспечить совместимость с ODBC, некоторые программы которой ставят перед именем таблицы символ ‘.’.
Переменные пользователя
Для определенного процесса пользователем могут быть определены локальные переменные, обозначаемые в MySQL как @variablename.
Имя локальной переменной может содержать буквенно-цифровые символы установленного алфавита и символы ‘.’ , ‘$’ и ‘_’. Типом кодировки по умолчанию является ISO-8859-1 Latin1.’ и ‘_’. Типом кодировки по умолчанию является ISO-8859-1 Latin1.
Локальные переменные не нуждаются в инициализации. По умолчанию они содержат значение NULL. В локальных переменных можно хранить целые, вещественные числа и строковые значения. При запуске определенного процесса все локальные переменные, которые были в нем объявлены, автоматически активизируются.
Локальная переменная объявляется с помощью синтаксиса команды SET:
Переменные, которые введены пользователем, можно применять лишь в выражениях и там, где допустимы выражения. Обратим внимание, что в данное время область их применения не содержит контекст, который явно требует число.
Существует правило: одну и ту же переменную не создавать и не использовать в одном и том же выражении SQL.