Compartilhar via


Palavras reservadas e esquemas

Aplica-se a: marca de seleção positiva SQL do Databricks marca de seleção positiva 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 ou DATABRICKS

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