Udostępnij za pośrednictwem


Zastrzeżone wyrazy i schematy

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Zastrzeżone słowa są literałami używanymi jako słowa kluczowe w języku SQL, które nie powinny być używane jako identyfikatory, aby uniknąć nieoczekiwanego zachowania.

Nazwy schematów zarezerwowanych mają specjalne znaczenie dla usługi Azure Databricks.

Słowa zastrzeżone

Usługa Azure Databricks formalnie nie zezwala na użycie żadnych określonych literałów jako identyfikatorów.

Jednak aby użyć dowolnego z poniższej listy identyfikatorów jako aliasu tabeli , należy otoczyć nazwę odwrotnymi apostrofami (`).

  • ANTY
  • KRZYŻ
  • EXCEPT
  • PEŁNE
  • WEWNĘTRZNY
  • INTERSECT
  • JOIN
  • BOCZNY
  • LEFT
  • MINUS
  • NATURALNY
  • ON
  • RIGHT
  • PÓŁ
  • UNION
  • USING

Słowa specjalne w wyrażeniach

Poniższa lista identyfikatorów może być używana w dowolnym miejscu, ale usługa Azure Databricks traktuje je preferencyjnie jako słowa kluczowe w wyrażeniach w niektórych kontekstach:

  • NULL

    Wartość SQL NULL .

  • DEFAULT

    Wskazuje domyślną kolumnę.

  • TRUE

    Wartość logiczna true SQL.

  • FALSE

    Wartość logiczna false SQL.

  • LATERAL

    Służy jako kwalifikator kolumn do wskazywania jawnej korelacji bocznej.

Użyj odwrotnych apostrofów (NULL i DEFAULT) lub kwalifikuj nazwy kolumn z nazwą tabeli lub aliasem.

Usługa Azure Databricks używa prefiksu CURRENT_ do odwoływania się do niektórych ustawień konfiguracji lub innych zmiennych kontekstowych. Prefiks paska podrzędnego (_) jest przeznaczony dla kolumn pseudo usługi Azure Databricks. W środowisku Databricks Runtime istniejąca pseudokolumna to kolumna _metadata.

Identyfikatory z tymi prefiksami nietraktowane preferencyjnie. Należy jednak unikać tworzenia kolumn lub aliasów kolumn przy użyciu tych prefiksów, aby uniknąć nieoczekiwanego zachowania.

Nazwy katalogów zarezerwowanych

Usługa Azure Databricks zastrzega sobie następującą listę nazw katalogów dla bieżącego lub przyszłego użycia:

  • Nazwy katalogów rozpoczynające się od SYS
  • Nazwy katalogów rozpoczynające się od DATABRICKS

Unikaj używania tych nazw.

Nazwy schematów zarezerwowanych

Usługa Azure Databricks zastrzega sobie następującą listę nazw schematów dla bieżącego lub przyszłego użycia:

  • BUILTIN

    Przyszłe użycie do kwalifikowania wbudowanych funkcji.

  • SESSION

    W przyszłości wykorzystywane do kwalifikowania widoków tymczasowych i funkcji.

  • INFORMATION_SCHEMA

    Przechowuje schemat informacji SQL Standard .

  • Nazwy schematów rozpoczynające się od SYS lub DATABRICKS

Unikaj używania tych nazw.

Słowa zarezerwowane ANSI

Usługa Azure Databricks nie wymusza zarezerwowanych słów ANSI. Poniższa lista słów kluczowych SQL2016 jest udostępniana tylko do celów informacyjnych.

  • A

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

  • B

    MIĘDZY, OBA, 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, GRUPA, GRUPOWANIE

  • H

    HAVING

  • I

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

  • J

    JOIN

  • L

    WIODĄCE, LEWE, PODOBNE, LOKALNE

  • N

    NATURAL, NO, NOT, NULL

  • O

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

  • P

    PARTITION, POZYCJA, PODSTAWOWA

  • R

    ZAKRES, ODWOŁANIA, REVOKE, PRAWO, WYCOFYWANIE, ROLLOWANIE, WIERSZ, WIERSZE

  • S

    SELECT, SESSION_USER, SET, NIEKTÓRE, START

  • T

    TABLE, TABLESAMPLE, POTEM, CZAS, DO, KOŃCOWE, PRAWDA, OBETNIJ

  • U

    UNION, UNIKALNE, NIEZNANE, UPDATE, UŻYTKOWNIK, USING

  • V

    VALUES

  • W

    KIEDY, WHERE, WINDOW, Z

Przykłady

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