Partager via


Mots et schémas réservés

S’applique à : case marquée oui Databricks SQL case marquée oui Databricks Runtime

Les mots réservés sont des littéraux utilisés comme mots-clés par le langage SQL qui ne doivent pas être utilisés comme identifiants pour éviter un comportement inattendu.

Les noms de schéma réservés ont une signification particulière pour Azure Databricks.

Mots réservés

Azure Databricks n’interdit pas formellement l’utilisation de littéraux spécifiques en tant qu’identificateurs.

Toutefois, pour utiliser l’une des listes d’identificateurs suivante comme alias de table, vous devez placer le nom entre accents graves (`).

  • ANTI
  • CROSS
  • EXCEPT
  • FULL
  • INNER
  • INTERSECT
  • JOIN
  • LATERAL
  • LEFT
  • MINUS
  • NATURAL
  • ACTIVÉ
  • RIGHT
  • SEMI
  • UNION
  • USING

Mots spéciaux dans les expressions

La liste d’identificateurs suivante peut être utilisée n’importe où, mais Azure Databricks traite ceux-ci de manière préférentielle comme des mots clés dans des expressions dans certains contextes :

  • NULL

    Valeur SQL NULL.

  • DEFAULT

    Indique une colonne par défaut.

  • TRUE

    Valeur booléenne true SQL.

  • FALSE

    Valeur booléenne false SQL.

  • LATERAL

    Utilisé comme qualificateur de colonne pour indiquer une corrélation latérale explicite.

Utilisez des accents graves (NULL et DEFAULT) ou qualifiez les noms de colonne avec un nom de table ou un alias.

Azure Databricks utilise le préfixe CURRENT_ pour faire référence à certains paramètres de configuration ou à d’autres variables de contexte. Le préfixe non souligné (_) est destiné aux pseudo colonnes Azure Databricks. Dans Databricks Runtime, la colonne _metadata est une pseudo colonne existante.

Les identificateurs avec ces préfixes ne sont pas traités de façon préférentielle. Toutefois, évitez les colonnes ou les alias de colonne à l’aide de ces préfixes pour éviter un comportement inattendu.

Noms de catalogue réservés

Azure Databricks réserve la liste suivante de noms de catalogues pour une utilisation actuelle ou ultérieure :

  • Noms de catalogues de données commençant par SYS
  • Noms de catalogues de données commençant par DATABRICKS

Évitez d’utiliser ces noms.

Noms de schémas réservés

Azure Databricks réserve la liste suivante de noms de schéma pour une utilisation actuelle ou ultérieure :

  • BUILTIN

    Utilisation future pour qualifier des fonctions intégrées.

  • SESSION

    Utilisation future pour qualifier des fonctions et des affichages temporaires.

  • INFORMATION_SCHEMA

    Contient le schéma d’informations SQL Standard.

  • Noms de schémas commençant par SYS ou DATABRICKS

Évitez d’utiliser ces noms.

Mots réservés ANSI

Azure Databricks n’applique pas les mots réservés ANSI. La liste suivante de mots clés SQL2016 est fournie à titre d’information uniquement.

  • A

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

  • B

    BETWEEN, BOTH, 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

    HAVING

  • I

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

  • J

    JOIN

  • L

    LEADING, LEFT, LIKE, LOCAL

  • N

    NATURAL, NO, NOT, NULL

  • O

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

  • P

    PARTITION, POSITION, PRIMARY

  • R

    RANGE, REFERENCES, REVOKE, RIGHT, ROLLBACK, ROLLUP, ROW, ROWS

  • S

    SELECT, SESSION_USER, SET, SOME, START

  • T

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

  • U

    UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING

  • V

    VALUES

  • W

    WHEN, WHERE, WINDOW, WITH

Exemples

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