Parole e schemi riservati

Si applica a:check contrassegnato sì controllo SQL databricks contrassegnato come sì Databricks Runtime

Le parole riservate sono valori letterali usati come parole chiave dal linguaggio SQL che non devono essere usati come identificatori per evitare comportamenti imprevisti.

I nomi degli schemi riservati hanno un significato speciale per Azure Databricks.

Parole riservate

Azure Databricks non impedisce formalmente l'uso di valori letterali specifici come identificatori.

Tuttavia, per usare uno dei seguenti elenchi di identificatori come alias di tabella, è necessario racchiudere il nome con i segni di spunta indietro (').

  • ANTI
  • CROCE
  • TRANNE
  • COMPLETO
  • INTERNO
  • INTERSECT
  • UNIRSI
  • LATERALE
  • SINISTRA
  • MENO
  • NATURALE
  • ON
  • VA BENE
  • SEMI
  • UNIONE
  • UTILIZZANDO

Parole speciali nelle espressioni

L'elenco di identificatori seguente può essere usato ovunque, ma Azure Databricks li considera preferibilmente come parole chiave all'interno di espressioni in determinati contesti:

  • NULL

    Valore SQL NULL .

  • DEFAULT

    Indica un valore predefinito per la colonna.

  • TRUE

    Valore booleano true SQL.

  • FALSE

    Valore booleano false SQL.

  • LATERAL

    Usato come qualificatore di colonna per indicare la correlazione laterale esplicita.

Usare i segni di spunta indietro (NULL e DEFAULT) o qualificare i nomi di colonna con un nome di tabella o un alias.

Azure Databricks usa il CURRENT_ prefisso per fare riferimento ad alcune impostazioni di configurazione o ad altre variabili di contesto. Il prefisso sottobar (_) è destinato alle colonne pseudo di Azure Databricks. In Databricks Runtime, una colonna pseudo esistente è la colonna _metadata.

Gli identificatori con questi prefissi non vengono trattati preferibilmente. Tuttavia, evitare le colonne o gli alias di colonna usando questi prefissi per evitare comportamenti imprevisti.

Nomi di catalogo riservati

Azure Databricks riserva l'elenco seguente di nomi di catalogo per l'uso corrente o futuro:

  • Nomi di catalogo a partire da SYS
  • Nomi di catalogo a partire da DATABRICKS

Evitare di usare questi nomi.

Nomi di schema riservati

Azure Databricks riserva l'elenco seguente di nomi di schemi per l'uso corrente o futuro:

  • BUILTIN

    Uso futuro per qualificare le funzioni predefinite.

  • SESSION

    Uso futuro per qualificare le visualizzazioni e le funzioni temporanee.

  • INFORMATION_SCHEMA

    Contiene lo schema delle informazioni standard SQL.

  • Nomi di schema che iniziano con SYS o DATABRICKS

Evitare di usare questi nomi.

Parole riservate ANSI

Azure Databricks non applica parole riservate ANSI. L'elenco seguente delle parole chiave SQL2016 viene fornito solo a scopo informativo.

  • Un

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

  • B

    TRA, ENTRAMBI, 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

    AVERE

  • Ho

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

  • J

    UNIRSI

  • L

    LEADER, SINISTRA, COME, LOCALE

  • N

    NATURAL, NO, NOT, NULL

  • O

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

  • P

    PARTIZIONAMENTO, POSIZIONE, PRIMARIO

  • 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

  • U

    UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING

  • Presso

    VALORI

  • W

    QUANDO, DOVE, FINESTRA, CON

Esempi

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