Нужны ли кавычки вокруг таблиц и столбцов в запросе MySQL?
У меня есть короткий вопрос о запросе mysql.
Что правильно?
SELECT * FROM Persons WHERE Year='1965'
или
SELECT * FROM `Persons` WHERE `Year` = '1965'
Это личный выбор или это что-то действительно не так?
Ответ 1
Что делать, если у вас есть таблица с именем table или столбец с именем where. Это зарезервированные ключевые слова. Если вы использовали те, что были в ваших запросах без обратных ссылок, они создавали бы недопустимый запрос (конечно, использование зарезервированных ключевых слов - плохая практика).
SELECT something FROM table WHERE where = 1;
против.
SELECT something FROM `table` WHERE `where` = 1;
Ответ 2
Котировки необходимы, если ваши идентификаторы (столбцы, имена таблиц, операторы и т.д.) содержат зарезервированные слова MySQL.
Оба правильные, но второй будет приниматься ВСЕГДА, даже если вы используете ключевые слова или функции типа while и NOW(), которые обычно рассматриваются как операторы.
Ответ 4
Оба метода верны, одинарная кавычка указывает начало и конец строки.
Поэтому, если вы, например, используете псевдоним столбца с пробелом, подобным Birth year, тогда вам нужно будет использовать одиночный кавычек следующим образом:
... WHERE `Birth year` = `1965`
Однако не рекомендуется использовать только более одного слова в псевдонимах.