SQL « Экранирование в Mysql

Господа, работал работал и забыл.

Обязательно ли экранировать апостофом ` названия столбцов и таблиц в SQL?

1 ответов


Совсем не обязательно. Обычно с апострофами заморачиваются системы автогенерации запросов. Вручную отбивать их каждый раз слишком муторно, визуально захламляют код.

Далее цитирую из wiki:
в языках типа SQL предпочтительно заключение названий таблиц и их полей в косые кавычки, поскольку это предотвращает путаницу с зарезервированными именами. Например, SELECT * FROM WHERE вызовет ошибку, а SELECT * FROM `WHERE` — нет (при условии, что существует таблица WHERE).

На мой взгляд, называть таблицу WHERE - просто дикость. Само по себе некорректное название, не несущее никакого смысла, которое, к тому же, является зарезервированным словом. В других ситуациях в названии могут присутствовать буквы национального языка или пробел, такое без обратных апострофов не обработать. Но если нормально называть таблицы и поля в них, то апострофы не нужны.


Хороший вопрос. Когда то сам задавался им, и вывел для себя правило, что лучше я буду заключать названия полей в кавычки, так как зарегистрированных слов достаточно много, и отлавливать почему не приходят данные, или приходят пустые или не корректные бывает достаточно сложно.