保留字和架構

適用于:核取標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

保留字是 SQL 語言用來作為關鍵字的常值,不應當做識別碼來避免非預期的行為。

保留的架構名稱對 Azure Databricks 有特殊意義。

保留字

Azure Databricks 不會正式禁止任何特定的常 值作為識別碼使用。

不過,若要使用下列任何 識別碼 清單做為 資料表別名,您必須將名稱括住 (') 。

  • CROSS
  • 除了
  • 相交
  • 加入
  • 離開
  • 減去
  • 自然
  • ON
  • 聯盟
  • 使用

運算式中的特殊字組

您可以在任何地方使用下列 識別碼 清單,但 Azure Databricks 會將這些識別碼視為特定內容中 運算式 內的關鍵字:

  • NULL

    SQL NULL 值。

  • DEFAULT

    表示資料行預設值。

  • TRUE

    SQL 布林 true 值。

  • FALSE

    SQL 布林 false 值。

  • LATERAL

    當做資料行限定詞來表示明確的橫向相互關聯。

使用反向刻度 (NULLDEFAULT) 或以資料表名稱或別名限定資料行名稱。

Azure Databricks 會 CURRENT_ 使用前置詞來參考某些 組態設定 或其他內容變數。 底線 () _ 前置詞適用于 Azure Databricks 虛擬資料行。 在 Databricks Runtime 中,現有的虛擬資料行是 _metadata資料行

這些前置詞的識別碼 不會 優先處理。 不過,請避免使用這些前置詞的資料行或 資料行別名 ,以避免發生非預期的行為。

保留目錄名稱

Azure Databricks 會保留下列 目錄名稱 清單,以供目前或未來使用:

  • 以 開頭的目錄名稱 SYS
  • 以 開頭的目錄名稱 DATABRICKS

避免使用這些名稱。

保留的架構名稱

Azure Databricks 會保留下列 架構名稱 清單,以供目前或未來使用:

  • BUILTIN

    未來使用 來限定內建函式。

  • SESSION

    未來使用 來限定暫存檢視和函式。

  • INFORMATION_SCHEMA

    保存 SQL 標準 資訊架構

  • 開頭為 SYS 或 的架構名稱 DATABRICKS

避免使用這些名稱。

ANSI 保留字

Azure Databricks 不會強制執行 ANSI 保留字。 下列 SQL2016 關鍵字清單僅供參考之用。

  • A

    ALL、ALTER、AND、ANY、ARRAY、AS、AT、AUTHORIZATION

  • B

    BETWEEN、BOTH、BY

  • C

    CASE、CAST、CHECK、COLLATE、COLUMN、COMMIT、CONSTRAINT、CREATE、CROSS、CUBE、CURRENT、CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP、CURRENT_USER

  • D

    DELETE、DESCRIBE、DISTINCT、DROP

  • E

    ELSE、END、ESCAPE、EXCEPT、EXISTS、EXTERNAL、EXTRACT

  • F

    FALSE, FETCH, FILTER, FOR, FOREIGN, FROM, FULL, FUNCTION

  • G

    GLOBAL、GRANT、GROUP、GROUPING

  • H

    HAVING

  • IN、INNER、INSERT、INTERSECT、INTERVAL、INTO、IS

  • J

    加入

  • LEADING、LEFT、LIKE、LOCAL

  • N

    NATURAL、NO、NOT、Null

  • O

    OF、ON、ONLY 或 ORDER、OUT、OUTER、OVERLAPS

  • P

    PARTITION、POSITION、PRIMARY

  • R

    RANGE, REFERENCES, REVOKE, RIGHT, ROLLBACK, ROLLUP, ROW, ROWS

  • S

    SELECT、SESSION_USER、SET、SOME、START

  • T

    TABLE、TABLESAMPLE、THEN、TIME、TO、TRAILING、TRUE、TRUNCATE

  • 美國

    UNION、UNIQUE、UNKNOWN、UPDATE、USER、USING

  • V

  • W

    WHEN、WHERE、WINDOW、WITH

例子

-- Using SQL keywords
> CREATE TEMPORARY VIEW where(where) AS (VALUES (1));

> SELECT where from FROM where select;
  1

-- Usage of NULL
> SELECT NULL, `null`, T.null FROM VALUES(1) AS T(null);
 NULL   1       1

-- current_date is eclipsed by the column alias T.current_date
> SELECT (SELECT current_date), current_date, current_date()
    FROM VALUES(1) AS T(current_date);
 2021-10-23     1       2021-10-23

-- Reserved keyword ANTI cannot be used as table alias
> SELECT * FROM VALUES(1) AS ANTI;
Error in query: no viable alternative at input 'ANTI'

> SELECT * FROM VALUES(1) AS `ANTI`;
  1