예약어 및 스키마
적용 대상: Databricks SQL Databricks Runtime
예약어는 예기치 않은 동작을 방지하기 위해 식별자로 사용해서는 안 되는 SQL 언어에서 키워드로 사용되는 리터럴입니다.
예약된 schema 이름은 Azure Databricks에 특별한 의미가 있습니다.
예약어
Azure Databricks는 특정 리터럴이 식별자로 사용되는 것을 공식적으로 허용하지 않습니다.
그러나
- ANTI
- CROSS
- EXCEPT
- FULL
- INNER
- INTERSECT
- JOIN
- LATERAL
- LEFT
- MINUS
- NATURAL
- ON
- RIGHT
- SEMI
- UNION
- USING
식의 특수 단어
NULL
SQL
NULL
값입니다.DEFAULT
column 기본값을 나타냅니다.
TRUE
SQL 부울
true
값입니다.FALSE
SQL 부울
false
값입니다.LATERAL
명시적 횡적 상관 관계를 나타내는 column 한정자로 사용됩니다.
백틱(NULL
및 DEFAULT
)을 사용하거나 column 이름을 table 이름 또는 별칭과 함께 qualify.
Azure Databricks는 CURRENT_
접두사를 사용하여 일부 구성 설정 또는 다른 컨텍스트 변수를 참조합니다.
언더바(_
) 접두사는 Azure Databricks 가상의 columns에 사용됩니다.
Databricks Runtime에서 기존 의사 column는 _metadata column입니다.
이러한 접두사가 있는 식별자는 우선적으로 처리되지 않습니다 . 그러나 이러한 접두사를 사용하여 columns 또는 column 별칭을 예기치 않은 동작을 방지합니다.
예약된 catalog 이름
Azure Databricks는 현재 또는 향후 사용을 위해 다음의 list을(를) catalog 이름으로 예약합니다.
-
Catalog 이름은
SYS
으로 시작합니다. -
Catalog 이름 중
DATABRICKS
으로 시작하는 것
이러한 이름을 사용하지 말아야 합니다.
예약된 schema 이름
Azure Databricks는 현재 또는 향후 사용을 위해 다음의 listschema 이름를 예약합니다.
BUILTIN
나중에 qualify에 사용할 기본 제공 함수.
SESSION
차후 임시 qualify 및 views 함수 사용.
INFORMATION_SCHEMA
SQL 표준 정보 schema을 보유하고 있습니다.
SYS
또는DATABRICKS
로 시작하는 Schema 이름
이러한 이름을 사용하지 말아야 합니다.
ANSI 예약어
Azure Databricks는 ANSI 예약어를 적용하지 않습니다. 다음 listSQL2016 키워드는 정보 제공을 목적으로만 사용됩니다.
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
글로벌, GRANT, GROUP, GROUPING
H
HAVING
I
인, 내부, INSERT, 교차, 간격, 에, 이다
J
JOIN
L
LEADING, LEFT, LIKE, LOCAL
N
NATURAL, NO, NOT, NULL
O
OF, ON, ONLY, OR, ORDER, OUT, OUTER, OVERLAPS
P
PARTITION, 위치, 주요
R
범위, 참조, REVOKE, 오른쪽, 롤백, 롤업, 행, 행
S
SELECT, SESSION_USER, SET, SOME, START
T
TABLE, TABLESAMPLE, 다음으로, 시간, ~로, 후행, 참, 잘라내기
U
유니온, 유니크, 언노운, UPDATE, 사용자, 사용 중
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