1、SQL完全限定
是指 明确指定数据库对象(如表、列、视图等)的完整路径,以消除歧义、提高可读性和确保跨环境兼容性。包括:
-
数据库名
-
架构名(或模式名)
-
表名
-
列名
完全限定名的标准形式(MySQL):
[database_name.]table_name[.column_name]
注意:这不是一个单独的 SQL 关键字,而是一种 命名约定(naming convention),用于在 SQL 语句中明确指定对象的位置。
| 部分 | 是否可选 | 说明 |
|---|---|---|
database_name |
可选 | 数据库(Schema)名称 |
. |
必须 | 分隔符 |
table_name |
必须 | 表名 |
.column_name |
可选 | 列名(仅在引用列时出现) |
如:
例:employees → 非限定表名(依赖当前数据库)hr_db.employees → 完全限定表名hr_db.employees.name → 完全限定列名 在 MySQL 中,没有“schema”层级(schema = database),所以只有两层:database.table
例子:
SELECT * FROM hr_db.employees; -- hr_db 被识别为 数据库名,employees 为 表名SELECT hr_db.employees.name FROM hr_db.employees; -- hr_db.employees.name 被识别为 列名,其所属表是 hr_db.employees
完全限定 = 从最外层命名空间到具体对象的完整路径。
| 数据库 | 完全限定格式(从外到内) |
|---|---|
| MySQL | database_name.table_name.column_name |
| PostgreSQL | database.schema.table.column(通常省略 database) |
| SQL Server | server.database.schema.table.column |
| Oracle | schema.table.column(用户 ≈ schema) |