MySQL/语言/指定名称
外观
在这本书中,我们将引用 MySQL 标识符(表名、字段、数据库等),使用反引号 (`
) 。
反引号是 ASCII 96。它可以通过在 Linux 系统中按 ALT+'. 来输入。
大多数情况下,这是可选的。不过,这样做可以从 MySQL 获得更佳的错误消息。例如,此错误并没有什么帮助
mysql> SELECT user_id, group_id FROM user,group LIMIT 1; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group LIMIT 1' at line 1
但此错误更好
mysql> SELECT user_id, group_id FROM `user`,`group` LIMIT 1; ERROR 1146 (42S02): Table 'savannah.group' doesn't exist
好的,它只是一个遗漏的 s
mysql> SELECT user_id, group_id FROM `user`,`groups` LIMIT 1; +---------+----------+ | user_id | group_id | +---------+----------+ | 100 | 2 | +---------+----------+ 1 row in set (0.02 sec)
此语法允许用户在对象名称中使用保留字和一些非法字符。甚至可以通过键入两次来使用反引号
RENAME TABLE `user` TO ````
但这不是一个可移植的语法。SQL 标准推荐使用双引号 ("
)。如果你想编写可移植的 SQL 引号,不要引用标识符。但即使是远程的,也没有所谓的可移植 SQL 吗?