跳转至内容

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 吗?

华夏公益教科书