Vyhrazená slova a schémata

Platí pro:check označeno ano Kontrola Databricks SQL označená ano Databricks Runtime

Vyhrazená slova jsou literály používané jazykem SQL jako klíčová slova, která by se neměla používat jako identifikátory, aby se zabránilo neočekávanému chování.

Názvy rezervovaných schémat mají pro Azure Databricks zvláštní význam.

Vyhrazená slova

Azure Databricks formálně nezakáží použití konkrétních literálů jako identifikátorů.

Pokud ale chcete jako alias tabulky použít některý z následujících identifikátorů, musíte název obklopit zpětnými zaškrtnutími (').

  • ANTI
  • KŘÍŽ
  • KROMĚ
  • PLNÉ
  • VNITŘNÍ
  • PROTÍNAJÍ
  • PŘIPOJIT
  • BOČNÍ
  • VLEVO
  • MINUS
  • PŘÍRODNÍ
  • NA
  • PRÁVO
  • SEMI
  • UNIE
  • POMOCÍ

Speciální slova ve výrazech

Následující seznam identifikátorů můžete použít kdekoli, ale Azure Databricks s nimi v určitých kontextech zachází přednostně jako s klíčovými slovy ve výrazech :

  • NULL

    Hodnota SQL NULL .

  • DEFAULT

    Označuje výchozí sloupec.

  • TRUE

    Logická true hodnota SQL.

  • FALSE

    Logická false hodnota SQL.

  • LATERAL

    Používá se jako kvalifikátor sloupce k označení explicitní laterální korelace.

Použijte zpětná zaškrtnutí (NULL a DEFAULT) nebo kvalifikujte názvy sloupců názvem tabulky nebo aliasem.

Azure Databricks používá předponu CURRENT_ k odkazu na některá nastavení konfigurace nebo jiné kontextové proměnné. Předpona podbaru (_) je určená pro pseudosloupce Azure Databricks. V modulu Databricks Runtime je existující pseudosloupcem sloupec _metadata.

S identifikátory s těmito předponami se nezachází přednostně. Vyhněte se však sloupcům nebo aliasům sloupců s použitím těchto předpon, abyste se vyhnuli neočekávanému chování.

Názvy rezervovaných katalogů

Azure Databricks si vyhrazuje následující seznam názvů katalogů pro aktuální nebo budoucí použití:

  • Názvy katalogů začínající na SYS
  • Názvy katalogů začínající na DATABRICKS

Nepoužívejte tyto názvy.

Názvy rezervovaných schémat

Azure Databricks vyhrazuje následující seznam názvů schémat pro aktuální nebo budoucí použití:

  • BUILTIN

    Budoucí použití k kvalifikaci předdefinovaných funkcí

  • SESSION

    Budoucí použití k kvalifikaci dočasných zobrazení a funkcí

  • INFORMATION_SCHEMA

    Obsahuje informační schéma SQL Standard.

  • Názvy schémat začínající na SYS nebo DATABRICKS

Nepoužívejte tyto názvy.

Rezervovaná slova ANSI

Azure Databricks nevynucuje rezervovaná slova ANSI. Následující seznam klíčových slov SQL2016 je k dispozici pouze pro informační účely.

  • A

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

  • B

    BETWEEN, BOTH, BY

  • C

    VELKÁ PÍSMENA, PŘETYPOVÁNÍ, KONTROLA, KOLACE, SLOUPEC, POTVRZENÍ, OMEZENÍ, VYTVOŘENÍ, KŘÍŽ, DATOVÁ KRYCHLE, AKTUÁLNÍ, 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, SESKUPOVÁNÍ

  • H

    S

  • I

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

  • J

    PŘIPOJIT

  • L

    ÚVODNÍ, VLEVO, LIKE, MÍSTNÍ

  • N

    NATURAL, NE, NULL

  • O

    OF, ON, ONLY, OR, ORDER, OUT, OUTER, OVERLAPS

  • P

    ODDÍL, POZICE, PRIMÁRNÍ

  • R

    ROZSAH, ODKAZY, ODVOLÁNÍ, VPRAVO, VRÁCENÍ ZPĚT, KUMULATIVNÍ, ŘÁDEK, ŘÁDKY

  • S

    SELECT, SESSION_USER, SET, SOME, START

  • T

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

  • U

    UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING

  • V

    HODNOTY

  • W

    KDY, KDE, OKNO, S

Příklady

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