Работая с базами данных мы постоянно обращаемся как к самим БД, так и к их составляющим. Для избежания ошибок, связанных с синтаксически неверным наименованием элементов, мы рассмотрим в этой статье какие существуют правила и ограничение на создание имен в MySQL.
На подбор имени элемента, с которым мы работаем, может оказывать влияние ряд факторов, ключевыми среди которых являются:
- Ограничения по набору символов, которые могут быть использованы
- Ограничения по количеству символов
- Контекст в котором используется имя
- Режим в котором работает сервер, на котором расположена наша СУБД
Теперь рассмотрим их подробнее:
Символы, которые мы можем использовать
К допустимым относят:
- Все цифры и буквы, которые используются и корректно распознаются на сервере
- Значок доллара «$»
- Значок нижнего подчеркивания «_»
Обратите внимание, что все символы мы можем использовать в любом порядке, начиная названия как с чисел и букв, так и со спецсимволов.
Ограничением в именах столбцов будет необходимость наличия в имени кроме цифр еще букв или оговоренных выше символов. Поскольку если имя будет составлено исключительно из цифр, то оно практически ничем не будет отличаться от простого числа для сервера. Мы же хотим избежать подобных казусов в нашей работе?
Ограничением в именах псевдонимов будет только то, что в случае появления в коде псевдонима только из цифр, с пробелами или же тождественного какому-либо ключевому слову MySQL, возникает необходимость заключить его в кавычки.
К ограничениям имен баз данных и таблиц помимо двух вышеперечисленных относится следующие:
- Запрещено использовать в именах точки. Даже если имя заключено в кавычки. Это связанно с тем, что сервер считывает точку как специальный разделитель, что в конечном итоге ведет к ошибкам.
- Запрещено использовать слеши « /» «\». При их появлении в имени появляется ошибка связанная с тем, что сервер некорректно считывает символы запрещенные в именах файлов и каталогов операционных систем, на которых он работает.
Длина, которой могут достигать имена
- 64 символа — максимально допустимый размер для имен БД, таблиц, столбцов и индексов.
- 256 символов - максимально допустимый размер для псевдонимов.
Обращения по именам (квалификаторы)
Базы данных
Выбрать вариант обращения к БД проще всего, поскольку он у нас всего один — просто указание имени…
USE db_name
Таблицы
- Обращение к таблице по полностью квалифицированному имени:
SHOW TABLES FROM db_name.tbl_name
- Указать просто имя таблицы, при таком варианте сервер обратится к текущей базе данных. (Осторожно! Если текущая база данных не определена, то такое обращение вызовет ошибку в коде)
SHOW TABLES FROM mytable
Столбцы
- Аналогично таблицам мы можем использовать в обращении полностью квалифицированное имя: При таком варианте у нас в запросе четко определены как БД, так и таблица со столбцом к которым мы обращаемся: db_name.tbl_name.col_name
- При использовании частично квалифицированного имени мы указываем таблицу и столбец, но не указываем БД: tbl_name.col_name
- Не квалифицированные имена. Это наиболее распространенная форма запросов, поскольку необходимости в их полной квалификации зачастую просто нет. Стоит только помнить, что в обработке запроса будет участвовать текущая БД. Для доступа к данным из другой БД нам нужны более квалифицированные запросы.
SELECT last_variable FROM mytable
Режим работы сервера
Если при запуске сервера были заданы параметры --ansi или --sql-mode=ANSI_QUOTES при составлении имен могут быть использованы и обычные двойные кавычки «”».