Для всех имен баз данных, таблиц, столбцов, индексов и псевдонимов в MySQL приняты одни и те же правила.
Следует отметить, что эти правила
были изменены, начиная с версии MySQL
3.23.6, когда было разрешено брать в
одиночные скобки
‘`’ идентификаторы
(имена баз данных, таблиц и
столбцов). Двойные скобки
‘"’ тоже допустимы -
при работе в режиме ANSI SQL (see
Раздел 1.9.2, «Запуск MySQL в режиме ANSI»).
| Идентификатор | Максимальная длина строки | Допускаемые символы |
| База данных | 64 | Любой символ, допустимый в имени
каталога, за исключением
‘/’,
‘\’ или
‘.’ |
| Таблица | 64 | Любой символ, допустимый в имени файла,
за исключением
‘/’ или
‘.’ |
| Столбец | 64 | Все символы |
| Псевдоним | 255 | Все символы |
Необходимо также учитывать, что не
следует использовать символы
ASCII(0), ASCII(255)
или кавычки в самом
идентификаторе.
Кроме того, если имя
идентификатора относится к
служебным словам или содержит
специальные символы, необходимо
всегда заключать его в обратные
кавычки ` при
использовании в выражениях:
mysql> SELECT * FROM `select` WHERE `select`.id > 100;
See Раздел 6.1.7, «``Придирчив'' ли MySQL к зарезервированным словам?».
В предыдущих версиях MySQL (до 3.23.6) для имен существовали следующие правила:
Имя может состоять из
буквенно-цифровых символов
установленного в данное время
алфавита и символов
‘_’ and
‘$’. Тип
кодировки по умолчанию - ISO-8859-1
Latin1, он может быть изменен
указанием иного типа в аргументе
параметра --default-character-set
mysqld (see
Раздел 4.6.1, «Набор символов, применяющийся для записи данных и сортировки»).
Имя может начинаться с любого допустимого символа, в частности, с цифры (в этом состоит отличие от правил, принятых во многих других базах данных). Однако имя не может состоять только из цифр.
Не допускается использование в
именах символа
‘.’, так как он
применяется для расширения
формата имени (посредством чего
можно ссылаться на столбцы - см. в
этом же разделе ниже).
Не рекомендуется использовать
имена, подобные 1e, так
как выражение вида 1e+1
является неоднозначным. Оно может
интерпретироваться и как
выражение 1e + 1, и как
число 1e+1.
В MySQL разрешается делать ссылки на столбец, используя любую из следующих форм:
| Ссылка на столбец | Значение |
col_name |
Столбец col_name из любой
используемой в запросе
таблицы содержит столбец с
данным именем. |
tbl_name.col_name |
Столбец col_name из таблицы
tbl_name текущей базы
данных. |
db_name.tbl_name.col_name |
Столбец col_name из таблицы
tbl_name базы данных
db_name. Эта форма
доступна в версии MySQL 3.22 или
более поздних. |
`column_name` |
Имя столбца является ключевым словом или содержит специальные символы. |
Нет необходимости указывать
префикс tbl_name или
db_name.tbl_name в ссылке на
столбец в каком-либо утверждении,
если эта ссылка не будет
неоднозначной. Например,
предположим, что каждая из таблиц
t1 и t2 содержит
столбец c, по которому
производится выборка командой
SELECT, использующей обе
таблицы - и t1, и
t2. В этом случае имя
столбца c является
неоднозначным, так как оно не
уникально для таблиц, указанных в
команде, поэтому необходимо
уточнить, какая именно таблица
имеется в виду, конкретизировав -
t1.c или t2.c.
Аналогично, при выборке данных из
таблицы t в базе данных
db1 и из таблицы
t в базе данных
db2 необходимо ссылаться
на столбцы в этих таблицах как на
db1.t.col_name и
db2.t.col_name.
Выражение .tbl_name означает
таблицу tbl_name в текущей
базе данных. Данный синтаксис
принят для совместимости с ODBC, так
как некоторые программы ODBC ставят
в начале имен таблиц в качестве
префикса символ
‘.’.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
