Esquemas y palabras reservadas
Se aplica a: Databricks SQL 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
oDATABRICKS
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