标识符

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime

标识符是用于标识对象(例如表、视图、架构或列)的字符串。 Azure Databricks 支持非分隔(常规)标识符和分隔标识符,它们均使用反引号引起来。

引用标识符时不区分大小写。

对于使用元存储和数据源保留的标识符,可以限制允许的字符。

有关标识符特定用法的详细信息,请参阅名称

非分隔标识符

语法

{ letter | '_' } [ letter | digit | '_' ] [ ... ]

参数

  • 字母A-Za-z 的任意 ASCII 字母。
  • 数字09 的任意 ASCII 数字。

注意

在 Databricks Runtime 中,如果 spark.sql.ansi.enabledspark.sql.ansi.enforceReservedKeywords 设置为 true,则不能将 ANSI SQL 保留关键字用作非分隔标识符。 有关详细信息,请参阅 ANSI 合规性

分隔标识符

语法

`c [ ... ]`

参数

  • c:Unicode 字符集中的任意字符。 使用 `` 自身进行转义。

示例

-- This statement fails because the undelimited identifier uses a non-ASCII letter.
> DESCRIBE SELECT 5 AS Ä;
 INVALID_IDENTIFIER

-- You can delimit the identifier to use a non-ASCII letter
> DESCRIBE SELECT 5 AS `Ä`;
 Ä

-- An identifier with dash needs to be delimited
> DESCRIBE SELECT 5 AS `a-b`;
 a-b

-- An identifier with a space needs to be delimited
> DESCRIBE SELECT 5 AS `a b`;
 a b

-- An identifier with a special character needs to be delimited
> DESCRIBE SELECT 5 AS `a@b`;
 a@b

-- An identifier with a Chinese character needs to be delimited
> DESCRIBE SELECT 5 AS `a中b`;
 a中b

-- An identifier with a backtick needs to be delimited and escaped.
> DESCRIBE SELECT 5 AS `a``b`;
 a`b