Зарезервированные слова и схемы
Область применения: Databricks SQL Databricks Runtime
Зарезервированные слова — это литералы, используемые языком SQL в качестве ключевых слов, которые не должны использоваться в качестве идентификаторов во избежание непредвиденного поведения.
Зарезервированные имена схем имеют особое значение для Azure Databricks.
Зарезервированные слова
Azure Databricks официально не запрещает использование каких-либо конкретных литералов в качестве идентификаторов.
Однако, чтобы использовать любой из приведенных ниже идентификаторов в качестве псевдонима таблицы, необходимо заключить имя в обратные такты (').
- АНТИ
- КРЕСТ
- КРОМЕ
- ПОЛНЫЙ
- ВНУТРЕННИЙ
- ПЕРЕСЕКАЮТСЯ
- Присоединиться к
- БОКОВОЙ
- ЛЕВОЙ
- МИНУС
- ПРИРОДНЫХ
- НА
- ПРАВИЛЬНО
- ПОЛУ
- СОЮЗА
- ИСПОЛЬЗУЯ
Специальные слова в выражениях
Следующий список идентификаторов можно использовать где угодно, но Azure Databricks рассматривает их преимущественно как ключевые слова в выражениях в определенных контекстах:
NULL
Значение SQL
NULL
.DEFAULT
Указывает столбец по умолчанию.
TRUE
Логическое
true
значение SQL.FALSE
Логическое
false
значение SQL.LATERAL
Используется в качестве квалификатора столбца для указания явной боковой корреляции.
Используйте обратные такты (NULL
и DEFAULT
) или укажите имена столбцов с помощью имени или псевдонима таблицы.
Azure Databricks использует CURRENT_
префикс для ссылки на некоторые параметры конфигурации или другие переменные контекста.
Префикс нижней панели (_
) предназначен для псевдоколонок Azure Databricks.
В Databricks Runtime существующий псевдостолбец является _metadata столбцом.
Идентификаторы с этими префиксами не обрабатываются преимущественно. Однако избегайте использования этих префиксов столбцов или псевдонимов столбцов , чтобы избежать непредвиденного поведения.
Зарезервированные имена каталогов
Azure Databricks резервирует следующий список имен каталогов для текущего или будущего использования:
- Имена каталогов, начинающийся с
SYS
- Имена каталогов, начинающийся с
DATABRICKS
Старайтесь не использовать эти имена.
Зарезервированные имена схем
Azure Databricks резервирует следующий список имен схем для текущего или будущего использования:
BUILTIN
Будущее использование для определения встроенных функций.
SESSION
Будущее использование для определения временных представлений и функций.
INFORMATION_SCHEMA
Содержит схему сведений SQL Standard.
Имена схем, начинающийся с
SYS
илиDATABRICKS
Старайтесь не использовать эти имена.
Зарезервированные слова ANSI
Azure Databricks не применяет зарезервированные слова ANSI. Следующий список ключевых слов SQL2016 предоставляется только в информационных целях.
A
ALL, ALTER И, 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
Г
GLOBAL, GRANT, GROUP, GROUPING
H
ИМЕЯ
Я
IN, INNER, INSERT, INTERSECT, INTERVAL, INTO, IS
J
Присоединиться к
L
LEADING, LEFT, LIKE, LOCAL
N
NATURAL, NO, NOT, NULL
O
OF, ON, ONLY ИЛИ, ORDER, OUT, OUTER, ПЕРЕКРЫВАЕТСЯ
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
ЗНАЧЕНИЯ
Ж
WHEN, WHERE, WINDOW, WITH
Примеры
-- 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