Reserverade ord och scheman

Gäller för:check markerad ja Databricks SQL-kontroll markerad som ja Databricks Runtime

Reserverade ord är literaler som används som nyckelord av SQL-språket som inte bör användas som identifierare för att undvika oväntat beteende.

Reserverade schemanamn har en särskild betydelse för Azure Databricks.

Reserverade ord

Azure Databricks tillåter inte formellt att vissa literaler används som identifierare.

Men om du vill använda någon av följande identifierare som ett tabellalias måste du omge namnet med back-ticks (').

  • ANTI
  • CROSS
  • UTOM
  • FULL
  • INRE
  • SKÄR
  • Ansluta sig till
  • LATERALA
  • VÄNSTER
  • MINUS
  • NATURLIGA
  • RÄTT
  • SEMI
  • UNIONEN
  • ANVÄNDA

Specialord i uttryck

Följande lista över identifierare kan användas var som helst, men Azure Databricks behandlar dem företrädesvis som nyckelord i uttryck i vissa kontexter:

  • NULL

    SQL-värdet NULL .

  • DEFAULT

    Anger en kolumnstandard.

  • TRUE

    Det booleska true SQL-värdet.

  • FALSE

    Det booleska false SQL-värdet.

  • LATERAL

    Används som kolumnkvalificerare för att ange explicit lateral korrelation.

Använd back-ticks (NULL och DEFAULT) eller kvalificera kolumnnamnen med ett tabellnamn eller alias.

Azure Databricks använder prefixet CURRENT_ för att referera till vissa konfigurationsinställningar eller andra sammanhangsvariabler. Prefixet underbar (_) är avsett för pseudokolumner i Azure Databricks. I Databricks Runtime är en befintlig pseudokolumn den _metadata kolumnen.

Identifierare med dessa prefix behandlas inte förmånligt. Undvik dock kolumner eller kolumnalias med hjälp av dessa prefix för att undvika oväntat beteende.

Reserverade katalognamn

Azure Databricks reserverar följande lista över katalognamn för aktuell eller framtida användning:

  • Katalognamn som börjar med SYS
  • Katalognamn som börjar med DATABRICKS

Undvik att använda dessa namn.

Reserverade schemanamn

Azure Databricks reserverar följande lista över schemanamn för aktuell eller framtida användning:

  • BUILTIN

    Framtida användning för att kvalificera inbyggda funktioner.

  • SESSION

    Framtida användning för att kvalificera tillfälliga vyer och funktioner.

  • INFORMATION_SCHEMA

    Innehåller SQL Standard-informationsschemat.

  • Schemanamn som börjar med SYS eller DATABRICKS

Undvik att använda dessa namn.

ANSI-reserverade ord

Azure Databricks framtvingar inte reserverade ANSI-ord. Följande lista över SQL2016-nyckelord tillhandahålls endast i informationssyfte.

  • A

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

  • B

    MELLAN, BÅDA, EFTER

  • C

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

  • D

    TA BORT, BESKRIVA, DISTINKTA, SLÄPPA

  • E

    ELSE, END, ESCAPE, EXCEPT, EXISTS, EXTERNAL, EXTRACT

  • F

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

  • G

    GLOBAL, GRANT, GROUP, GROUPING

  • H

    HAR

  • I

    IN, INNER, INSERT, INTERSECT, INTERVAL, INTO, IS

  • J

    Ansluta sig till

  • L

    LEADING, LEFT, LIKE, LOCAL

  • N

    NATURLIG, NEJ, INTE, NULL

  • O

    AV, PÅ, ENDAST, ELLER, ORDNING, UT, YTTRE, ÖVERLAPPAR

  • P

    PARTITION, POSITION, PRIMÄR

  • R

    INTERVALL, REFERENSER, ÅTERKALLA, HÖGER, ÅTERSTÄLLNING, SAMMANSLAGNING, RAD, RADER

  • S

    SELECT, SESSION_USER, SET, SOME, START

  • T

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

  • U

    UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING

  • V

    VÄRDEN

  • W

    WHEN, WHERE, WINDOW, WITH

Exempel

-- 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