标识符
标识符用来标识数据库中的对象或实体名称。标识符的命名需要满足以下规则:
- 以 Unicode 字母或下划线(
_
)开头,后续字符可以是 Unicode 字母、下划线、数字(0~9)。 - 不能和任何 SQL 关键字相同。除非 SQL 元素的语法中接受该关键字,例如
name
接受非预留或列名关键字。
如果使用双引号将标识符括起来,可以绕过上述规则。此时,标识符区分大小写。
标识符限定词
KWDB 支持由一个或多个标识符组成的名称,各部分通过英文句号字符(.
)分割。组合名称的起始部分被用作限定词,影响上下文中后续标识符的解释。
用户可以使用下表中的任一方式引用列:
列引用 | 描述 |
---|---|
column_name | 引用任意表中的 column_name 列 |
table_name.column_name | 引用当前数据库中表 table_name 的 column_name 列 |
database_name.table_name.column_name | 引用数据库 database_name 中表 table_name 的 column_name 列 |
column_name | 用于引用关键词或包含特殊字符的字段 |
在引用组合标识符时,需要逐个引用各标识符部分,而不是将整个组合标识符视为一个整体进行引用。例如,"table"."column"
是合法的引用方式,但 "table.column"
是不合法的引用方式。
通常情况下,在列引用的语句中,用户无需明确指定表名或数据库名,除非目标字段存在二义性。例如,如果表 t1
和 t2
都包含字段 c
,当使用 SELECT
语句在表 t1
和 t2
中检索字段 c
时,由于字段 c
存在二义性,因此必须使用 t1.c
或 t2.c
明确查找的目标字段。同理,如果两个数据库中存在具有相同名称的表,用户必须使用 db1.table_name.col_name
和 db2.table_name.col_name
来明确具体引用的目标列。