Esquemas y palabras reservadas

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Las palabras reservadas son literales que el lenguaje SQL utiliza como palabras clave y que no se deben usar como identificadores para evitar comportamientos inesperados.

Los nombres reservados de esquemas tienen un significado especial para Azure Databricks.

Palabras reservadas

Azure Databricks no rechaza formalmente el uso de literales específicos como identificadores.

Sin embargo, para usar cualquier palabra de las siguientes listas de identificadores como alias de tabla, debe delimitar el nombre con acentos invertidos (`).

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

Palabras especiales en expresiones

La siguiente lista de identificadores se puede usar en cualquier lugar, pero Azure Databricks los trata preferentemente como palabras clave dentro de expresiones en determinados contextos:

  • NULL

    Valor NULL de SQL.

  • DEFAULT

    Indica un valor predeterminado de columna.

  • TRUE

    Valor booleano true de SQL.

  • FALSE

    Valor booleano false de SQL.

  • LATERAL

    Se usa como calificador de columna para indicar una correlación lateral explícita.

Use acentos invertidos (NULL y DEFAULT) o califique los nombres de columna con un alias o un nombre de tabla.

Azure Databricks usa el prefijo CURRENT_ para hacer referencia a algunos valores de configuración u otras variables de contexto. El prefijo de carácter de subrayado (_) está pensado para las seudocolumnas de Azure Databricks. En Databricks Runtime, una seudocolumna existente es la columna _metadata.

Los identificadores con estos prefijos no se tratan de forma preferente. Sin embargo, evite columnas o alias de columna que utilicen estos prefijos para evitar comportamientos inesperados.

Nombres de catálogo reservados

Azure Databricks reserva la siguiente lista de nombres de catálogo para su uso actual o futuro:

  • Nombres de catálogo que empiezan por SYS
  • Nombres de catálogo que empiezan por DATABRICKS

Evite usar estos nombres.

Nombres de esquema reservados

Azure Databricks reserva la siguiente lista de nombres de esquema para su uso actual o futuro:

  • BUILTIN

    Uso futuro para calificar funciones integradas.

  • SESSION

    Uso futuro para calificar funciones y vistas temporales.

  • INFORMATION_SCHEMA

    Contiene el esquema de información de SQL Standard.

  • Nombres de esquema a partir de SYS o DATABRICKS

Evite usar estos nombres.

Palabras reservadas ANSI

Azure Databricks no aplica palabras reservadas ANSI. La siguiente lista de palabras clave de SQL2016 solo se proporciona con fines informativos.

  • 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, TRAILING, TRUE, TRUNCATE

  • U

    UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING

  • V

    VALUES

  • W

    WHEN, WHERE, WINDOW, WITH

Ejemplos

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