标识符

标识符用来标识数据库中的对象或实体名称。标识符的命名需要满足以下规则:

  • 以 Unicode 字母或下划线(_)开头,后续字符可以是 Unicode 字母、下划线、数字(0~9)。
  • 不能和任何 SQL 关键字相同。除非 SQL 元素的语法中接受该关键字,例如 name 接受非预留或列名关键字。

如果使用双引号将标识符括起来,可以绕过上述规则。此时,标识符区分大小写。

标识符限定词

KWDB 支持由一个或多个标识符组成的名称,各部分通过英文句号字符(.)分割。组合名称的起始部分被用作限定词,影响上下文中后续标识符的解释。

用户可以使用下表中的任一方式引用列:

列引用描述
column_name引用任意表中的 column_name
table_name.column_name引用当前数据库中表 table_namecolumn_name
database_name.table_name.column_name引用数据库 database_name 中表 table_namecolumn_name
column_name用于引用关键词或包含特殊字符的字段

在引用组合标识符时,需要逐个引用各标识符部分,而不是将整个组合标识符视为一个整体进行引用。例如,"table"."column" 是合法的引用方式,但 "table.column" 是不合法的引用方式。

通常情况下,在列引用的语句中,用户无需明确指定表名或数据库名,除非目标字段存在二义性。例如,如果表 t1t2 都包含字段 c,当使用 SELECT 语句在表 t1t2 中检索字段 c 时,由于字段 c 存在二义性,因此必须使用 t1.ct2.c 明确查找的目标字段。同理,如果两个数据库中存在具有相同名称的表,用户必须使用 db1.table_name.col_namedb2.table_name.col_name 来明确具体引用的目标列。