Dela via


Reserverade ord och scheman

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

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

Reserverade schema namn har särskild betydelse för Azure Databricks.

Reserverade ord

Azure Databricks tillåter inte formellt några specifika literaler från att användas som identifierare.

Om du vill använda någon av följande list av identifierare som ett table aliasmåste du dock omge namnet med back-ticks (').

  • ANTI
  • KORS
  • UTOM
  • FULL
  • INRE
  • INTERSECT
  • JOIN
  • LATERAL
  • LEFT
  • MINUS
  • NATURLIG
  • ON
  • RIGHT
  • SEMI
  • UNION
  • ANVÄNDANDE

Specialord i uttryck

Följande list av identifierare kan användas var som helst, men Azure Databricks behandlar dem företrädesvis som nyckelord inom uttryck i vissa sammanhang:

  • NULL

    SQL-värdet NULL .

  • DEFAULT

    Anger ett column standardvärde.

  • TRUE

    SQL-booleskt true värde.

  • FALSE

    SQL-booleskt false värde.

  • LATERAL

    Används som en column-kvalificerare för att indikera explicit lateral korrelation.

Använd back-ticks (NULL och DEFAULT) eller qualifycolumn namn med ett table namn eller alias.

Azure Databricks använder prefixet CURRENT_ för att referera till vissa konfigurationsinställningar eller andra kontextvariabler. Prefixet underbar (_) är avsett för Azure Databricks pseudo-columns. I Databricks Runtime är en befintlig pseudo-column_metadata column.

Identifierare med dessa prefix behandlas inte företrädesvis. Undvik dock att använda prefixen columns eller column alias för att undvika oväntat beteende.

Reserverade namn catalog

Azure Databricks reserverar följande list av catalog namn för aktuell eller framtida användning:

  • Catalog namn som börjar med SYS
  • Catalog namn som börjar med DATABRICKS

Undvik att använda dessa namn.

Reserverade schema namn

Azure Databricks reserverar följande list av schema namn för aktuell eller framtida användning:

  • BUILTIN

    Framtida användning av qualify de inbyggda funktionerna.

  • SESSION

    Framtida användning av qualify tillfälliga views och funktioner.

  • INFORMATION_SCHEMA

    Innehåller SQL Standard-information schema.

  • Schema namn som börjar med SYS eller DATABRICKS

Undvik att använda dessa namn.

RESERVERADE ANSI-ord

Azure Databricks tillämpar inte reserverade ANSI-ord. Följande list av 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, SKAPA, KORS, KUB, AKTUELL, AKTUELLT_DATUM, AKTUELL_TID, AKTUELL_TIDSSTÄMPEL, AKTUELL_ANVÄNDARE

  • D

    TA BORT, BESKRIVA, DISTINKT, SLÄPP

  • E

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

  • F

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

  • G

    GLOBAL, GRANT, GRUPP, GRUPPERING

  • H

    HAVING

  • I

    IN, INNER, INSERT, SKÄRNING, INTERVALL, IN I, ÄR

  • J

    JOIN

  • L

    LEADING, LEFT, LIKE, LOCAL

  • N

    NATURLIG, NEJ, INTE, NULL

  • O

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

  • P

    PARTITION, POSITION, PRIMÄR

  • R

    INTERVALL, REFERENSER, REVOKE, HÖGER, ROLLBACK, ROLLUP, RAD, RADER

  • S

    SELECT, SESSION_USER, SET, NÅGRA, START

  • T

    TABLE, TABLESAMPLE, SEDAN, TID, TILL, EFTERFÖLJANDE, SANN, TRUNKERA

  • U

    UNION, UNIQUE, UNKNOWN, UPDATE, ANVÄNDARE, USING

  • V

    VALUES

  • W

    NÄR, WHERE, WINDOW, MED

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