9.2.1. 识别符限制条件

MySQL允许使用由单个识别符或多个识别符组成的名字。多部分名各组件之间应以句点(.)间隔开。多部分名的开头部分作为限定词,后面的识别符被解释。

MySQL中可以引用下面形式的列:

列参考

含义

col_name

col_name,查询中使用的表包含有此名字的列。

tbl_name.col_name

默认数据库中的表tbl_name的列col_name

db_name.tbl_name.col_name

数据库db_name中的表tbl_name的列col_name

 

如果多部分名的组件需要引用,应分别将它们引起来而不要将整个名引起来。例如,`my-tables`.`my-column` 有效,而`my-tables.my-column`无效。

不需要在语句中为列指定tbl_namedb_name.tbl_name前缀,除非列会很模糊。假定表t1t2各包含一个列c,你使用SELECT语句在t1t2中搜索c。在这种情况下,c很模糊,因为它在语句中使用的表内不唯一。你必须用表名t1.ct2.c限定它,表示指哪个表。同样,要想用同一语句搜索数据库db1中的表t和数据库db2中的表t,你必须将那些表中的列指为db1.t.col_namedb2.t.col_name

限定名中句点后面的字必须为一个识别符,因此不需要将它引起来,即使是一个保留字。

语法.tbl_name表示当前数据库中的tbl_name。该语法与ODBC兼容,因为某些ODBC程序在表名前面加前缀‘.’字符。

关注编程学问公众号