Palavras reservadas e esquemas
Aplica-se a: SQL do Databricks Runtime do Databricks
Palavras reservadas são literais usados como palavra-chave pela linguagem SQL que não devem ser usados como identificadores para evitar comportamentos inesperados.
Os nomes de esquema reservados têm um significado especial para o Azure Databricks.
Palavras reservadas
O Azure Databricks não permite que nenhum literal específico seja usado como identificadores.
No entanto, para usar qualquer uma das seguintes lista de identificadores como um alias de tabela, você deve colocar o nome com tiques de volta (`).
- ANTI
- CROSS
- EXCEPT
- FULL
- INNER
- INTERSECT
- JOIN
- LATERAL
- LEFT
- MINUS
- NATURAL
- ATIVADO
- RIGHT
- SEMI
- UNION
- USING
Palavras especiais em expressões
A lista de identificadores a seguir pode ser usada em qualquer lugar, mas o Azure Databricks os trata preferencialmente como palavras-chave em expressões em determinados contextos:
NULL
O valor
NULL
de SQL.DEFAULT
Indica um padrão de coluna.
TRUE
O valor booliano
true
de SQL.FALSE
O valor booliano
false
de SQL.LATERAL
Usado como um qualificador de coluna para indicar a correlação lateral explícita.
Use tiques de volta ( NULL
e DEFAULT
) ou qualifique os nomes de coluna com um nome de tabela ou alias.
O Azure Databricks usa o prefixo CURRENT_
para se referir a algumas definições de configuração ou outras variáveis de contexto.
O prefixo de barra inferior (_
) destina-se a pseudocolunas do Azure Databricks.
No Databricks Runtime, uma pseudocoluna existente é a coluna _metadata.
Identificadores com esses prefixos não são tratados preferencialmente. No entanto, evite colunas ou aliases de coluna usando esses prefixos para evitar um comportamento inesperado.
Nomes de catálogo reservados
O Azure Databricks reserva a seguinte lista de nomes de esquema para uso futuro:
- Nomes de bancos de dados que começam com
SYS
- Nomes de catálogo que começam com
DATABRICKS
Evitar usar esses nomes.
Nomes de esquema reservados
O Azure Databricks reserva a seguinte lista de nomes de esquema para uso futuro:
BUILTIN
Uso futuro para qualificar funções internas.
SESSION
Uso futuro para qualificar exibições e funções temporárias.
INFORMATION_SCHEMA
Mantém o esquema de informações do SQL Standard.
Nomes de esquema começando com
SYS
ouDATABRICKS
Evitar usar esses nomes.
Palavras reservadas para ANSI
O Azure Databricks não impõe palavras reservadas para ANSI. A lista a seguir de palavras-chave do SQL2016 é fornecida apenas para fins 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
Exemplos
-- 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