Поиск
Имена баз данных, таблиц, индексов, столбцов и псевдонимов
Имена баз данных, таблиц, индексов, столбцов и псевдонимов — это идентификаторы. В настоящем разделе описан допустимый синтаксис для идентификаторов в MySQL.
В табл.приведены максимальные длины и допустимые символы для каждого типа идентификаторов.
Таблица Максимальные длины и допустимые символы для идентификаторов
| Идентификатор | Максимальная длина (в байтах) | Допустимые символы |
| База данныхкаталогов, кроме 7\'\ ' и *. | 64 | Любые символы, разрешенные в именах |
| Таблицафайлов, кроме V, 'V и '.'. | 64 | Любые символы, разрешенные в именах |
| Столбец | 64 | |
|
Индекс |
64 | |
| Псевдоним | 255 | |
Любые символы. Любые символы. Любые символы. В дополнение к ограничениям, указанным в табл. , ни один идентификатор не может содержать символ ASCII 0 или байт со значением 255. Имена баз, таблиц и столбцов не должны завершаться пробелами. До MySQL 4.1.1 символы кавычек не должны были применяться с идентификаторами. Начиная с MySQL 4.1.1, идентификаторы сохраняются в кодировке Unicode (UTF8). Это применимо к идентификаторам в определениях таблиц, хранящихся в файлах . f rm, a также к идентификаторам, сохраняемым в таблицах привилегий базы данных mysql. Несмотря на то что идентификаторы Unicode могут включать в себя многобайтные символы, помните, что максимальная их длина указана в байтах. Если идентификатор включает многобайтные символы, то допустимое количество символов меньше, чем значение, приведенное в таблице. Идентификатор может быть или не быть окруженным кавычками. Если идентификатор совпадает с зарезервированным словом либо содержит специальные символы, вы должны заключать его в кавычки всякий раз, когда к нему обращаетесь. Список зарезервированных слов приведен в разделе 2.6. Специальные символы находятся вне набора букв и цифр текущего символьного набора плюс '__' и '$'.
Символом кавычки для окружения идентификаторов служит обратная кавычка (' ч'):
mysql SELECT * FROM чselect4 WHERE v select\id 100;
Если SQL-режим сервера активизирует опцию ANSI_QUOTES, то можно также заключать идентификаторы в двойные кавычки:
mysql CREATE TABLE test (col INT);
ERROR 1064: You have an error in your SQL syntax. (...)
Начиная с версии MySQL 4.1, символы кавычек могут находиться внутри идентификатора, если сам идентификатор взят в кавычки. Если символ, который нужно включить в состав идентификатора, совпадает с тем, что служит для него кавычкой, его следует повторить. Следующий оператор создает таблицу под названием ачЬ, которая содержит столбец по имени cd:
mysql CREATE TABLE 'ab' fcd~ INT);
Помещение идентификаторов в кавычки было введено в MySQL 3.23.6 с тем, чтобы разрешить использование идентификаторов, совпадающих с зарезервированными словами или содержащих специальные символы. До версии 3.23.6 нельзя было применять идентификаторы, которые требуют кавычек, поэтому правила образования идентификаторов для старых версий MySQL более строгие:
- Имя может включать алфавитно-цифровые символы из текущего набора симво
лов, а также символы '_' и '$'. В качестве набора символов по умолчанию принят
ISO-8859-1 (Latin1). Его можно изменить с помощью опции mysqld —default-
character-set. - Имя может начинаться с любого допустимого символа. В частности, имя может
начинаться с цифры, что весьма отличается от множества других систем управле
ния базами данных. Однако имя, не помещенное в кавычки, не может содержать
только цифры. - В именах нельзя применять символ точки '. \ поскольку точка служит для расши
рения формата, когда можно обращаться к столбцам (см. раздел Идентификационные квалификаторы).
Не рекомендуется использовать имена вроде 1е, потому что выражение, подобное 1е+1, неоднозначно. Оно может интерпретироваться как выражение 1е + 1 либо как число 1е+1, в зависимости от контекста.