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_name或db_name.tbl_name前缀,除非列会很模糊。假定表t1和t2各包含一个列c,你使用SELECT语句在t1和t2中搜索c。在这种情况下,c很模糊,因为它在语句中使用的表内不唯一。你必须用表名t1.c或t2.c限定它,表示指哪个表。同样,要想用同一语句搜索数据库db1中的表t和数据库db2中的表t,你必须将那些表中的列指为db1.t.col_name和db2.t.col_name。
限定名中句点后面的字必须为一个识别符,因此不需要将它引起来,即使是一个保留字。
语法.tbl_name表示当前数据库中的tbl_name。该语法与ODBC兼容,因为某些ODBC程序在表名前面加前缀‘.’字符。