在 MySQL 中使用反引号时,列名不会与保留字冲突:
SELECT `count`, `type`
FROM table1
当你这样做时,你是否还需要使用反引号来防止它与保留字冲突:
SELECT table1.count, table1.type
FROM table1
您是否仍应像这样添加反引号:
SELECT table1.`count`, table1.`type`
FROM table1
任何帮助表示赞赏。
在 MySQL 中使用反引号时,列名不会与保留字冲突:
SELECT `count`, `type`
FROM table1
当你这样做时,你是否还需要使用反引号来防止它与保留字冲突:
SELECT table1.count, table1.type
FROM table1
您是否仍应像这样添加反引号:
SELECT table1.`count`, table1.`type`
FROM table1
任何帮助表示赞赏。
您的语法(不带
backticks
)将适用请参阅文章底部的 SQL。
(tl;dr) 问题“MySQL:使用点来引用表名时是否需要在列名上使用反引号”的答案是“不,您不需要使用反引号! ”。
也可以看看
PostgreSQL -在这里,
MS SQL Server -在这里,
甲骨文 -在这里。
但是,我求求你,如果你重视自己的理智,永远不要使用SQL 关键字。
COUNT
是这样TYPE
的话。它使调试成为一场噩梦,而且完全没有必要。使用诸如my_count
orthing_type
之类的标识符。仅仅因为您可以将汽车开过悬崖,并不意味着您应该这样做!大多数(全部?)现代
RDBMS
s (至少)有 64 个字符(*)标识符。That_is_more_than_enough_dont_you_think?此外(而且非常重要),如果您使用多余的(并且非常烦人)
backtick
,那么在将 SQL 剪切和粘贴到不同的服务器时,您会感到束手无策——我的建议是不惜一切代价避免。它不再是必需的,而且输入起来很棘手!从网上获取一些 SQL 命名约定(示例),选择一个并坚持下去!这在某种程度上是一个宗教话题(杰克神父不朽的话中的“普世问题” !)。阅读并自己决定!
我自己的偏好是表名是单数的(无论如何,表都是一个集合),大写的 SQL 和 identifiers_in_lower_case_with_underscores - 使阅读变得容易!
您(以及追随您的人)将永远感激不尽!
(*) 从这里开始,Oracle 增加了 30 个字节,包括 12.1,但现在是 128 个字节 - 几乎是一条推文!:-)
现在,考虑以下 DDL、DML、查询和响应:
(简单、易读、便携!)
=========== DDL 和 DML ==================
和一个简单的查询:
结果: