在MySQL中,提供了5种类型的标识符——Database(数据库)、Table(表)、Column(列)、index(索引)和Alias(别名)。前4类标识符我们已经熟悉,对于别名标识符,我们在下一章详细介绍。
MySQL中的数据库将被映射到具有某种文件结构的目录,而表则映射到文件。这可能对赋予它们的名字有直接影响。它也可以影响这些名字的大小写——如果操作系统区分目录与文件的大小写,那么数据库名称和表名称也会区分大小写(例如,在UNIX中),否则不区分(例如在Windows中)。列的名称和别名的名称不区分大小写,但是不能在同一个SQL语句中使用不同的大小写。
值得注意的是,目录和包含数据的文件的位置需要在配置中设置。可以使用mysqladmin命令来检查它们在系统中的位址,如下所示:
>mysqladmin-h host-u root-p variables
然后再查询datadir变量。
表9-4给出了所有标识符的总结。唯一的例外是在标识符中不能使用ASCII(0)、ASCII(255)或引号字符(实际上,这3个字符不会用到)。
这些规则是非常开放的。你甚至可以使用所有类型的单词和特殊字符作为标识符,唯一的限制是如果使用这样奇怪的标识符,必须用后引号将其括起来(位于大多数键盘上角的波浪号之下)。例如:
create database'create database';
该规则在MySQL版本中(3.23.6版本前)有更严格的限制,它不允许这么做。
当然,对这些自由需要运用常识。只因为可以调用数据库"create database",并不意味着应该这么做。同样的原则也适用于其他编程语言——使用有意义的标识符。