Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к: Databricks SQL
Databricks Runtime
Зарезервированные слова — это литералы, используемые в качестве ключевых слов в языке SQL. Их не следует использовать в качестве идентификаторов во избежание непредвиденного поведения.
Зарезервированные имена схем имеют особое значение для Azure Databricks.
Зарезервированные слова
Azure Databricks официально не запрещает использование определенных литералов в качестве идентификаторов.
Однако для использования любого из следующих идентификаторов в качестве псевдонима таблицынеобходимо заключить имя в обратные апострофы (`).
- АНТИ-
- Крест
- КРОМЕ
- полный
- внутренний
- ПЕРЕСЕЧЕНИЕ
- JOIN
- боковой
- ЛЕВО
- MINUS
- Натуральный
- ВКЛ
- ПРАВО
- SEMI
- Союз
- использование
Специальные слова в выражениях
Следующий список идентификаторов можно использовать в любом месте, но в Azure Databricks они предпочтительно используются как ключевые слова в выражениях в определенных контекстах.
NULL
Значение
NULL
в SQL.DEFAULT
Указывает столбец по умолчанию.
TRUE
Логическое значение
true
в SQL.FALSE
Значение SQL типа boolean
false
.LATERAL
Используется в качестве указателя столбца для указания явной латеральной корреляции.
Используйте обратные кавычки (NULL
и DEFAULT
) или укажите имена столбцов с указанием имени таблицы или псевдонима.
Azure Databricks использует CURRENT_
префикс для ссылки на некоторые параметры конфигурации или другие переменные контекста.
Префикс подчеркивания (_
) предназначен для Azure Databricks псевдоколонок.
В Databricks Runtime существующий псевдостолбец — это столбец _metadata.
Идентификаторы с такими префиксами не рассматриваются с приоритетом. Однако избегайте использования этих префиксов с псевдонимами столбцов или столбцами , чтобы избежать непредвиденного поведения.
Зарезервированные имена каталогов
Azure Databricks резервирует следующий список имен каталогов для текущего или будущего использования:
- Имена каталогов, начиная с
SYS
- Имена каталогов, начиная с
DATABRICKS
Избегайте использования этих имен.
Зарезервированные имена схем
Azure Databricks резервирует следующий список имен схем для текущего или будущего использования:
BUILTIN
Будущее использование для определения встроенных функций.
SESSION
Будущее использование для квалификации временных представлений и функций.
INFORMATION_SCHEMA
Имена схем, начиная с
SYS
илиDATABRICKS
Избегайте использования этих имен.
Зарезервированные слова ANSI
Azure Databricks не применяет зарезервированные слова ANSI. Следующий список ключевых слов SQL2016 предоставляется только для информационных целей.
A
ALL, ALTER, AND, ANY, ARRAY, AS, AT, AUTHORIZATION
B
МЕЖДУ, ОБА, У
C
CASE, CAST, CHECK, COLLATE, COLUMN, COMMIT, CONSTRAINT, CREATE, CROSS, CUBE, CURRENT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER (случай, приведение, проверка, сопоставление, COLUMN, фиксация, CONSTRAINT, создание, пересечение, куб, текущее, текущая дата, текущее время, текущая временная метка, текущий пользователь)
D
DELETE, DESCRIBE, DISTINCT, DROP
E
ELSE, END, ESCAPE, EXCEPT, EXISTS, EXTERNAL, EXTRACT
F
FALSE, FETCH, FILTER, FOR, FOREIGN, FROM, FULL, FUNCTION
G
ГЛОБАЛЬНЫЙ, GRANT, ГРУППА, ГРУППИРОВКА
H
HAVING
I
В, ВНУТРЕННИЙ, INSERT, ПЕРЕСЕЧЕНИЕ, ИНТЕРВАЛ, В, ЯВЛЯЕТСЯ
J
JOIN
L
ЛИДИРУЮЩИЙ, ЛЕВЫЙ, КАК, ЛОКАЛЬНЫЙ
N
НАТУРАЛЬНЫЙ, НЕТ, НЕ, НУЛЬ
O
ИЗ, НА, Только, ИЛИ, ПОРЯДОК, ВНЕ, ВНЕШНИЙ, ПЕРЕКРЫТИЯ
P
PARTITION, ПОЗИЦИЯ, ПЕРВИЧНАЯ
R
RANGE, REFERENCES, REVOKE, RIGHT, ROLLBACK, ROLLUP, ROW, СТРОКА, СТРОКИ
S
SELECT, ПОЛЬЗОВАТЕЛЬ_СЕССИИ, SET, НЕКОТОРЫЕ, НАЧАЛО
T
TABLE, TABLESAMPLE, ЗАТЕМ, ВРЕМЯ, К, КОНЕЧНЫЙ, ИСТИНА, УСЕЧЕНИЕ
U
UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING
V
VALUES
W
КОГДА, WHERE, WINDOW, С
Примеры
-- 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