예약된 키워드와 제한된 키워드¶
Snowflake SQL은 모든 ANSI 키워드(CHAR, DATE, DECIMAL 등의 형식 키워드 제외)뿐 아니라, 널리 사용되는 다른 데이터베이스에서 예약한 일부 추가 키워드(ASC, DESC, MINUS 등)도 예약합니다. 그 밖에도, Snowflake는 REGEXP 및 RLIKE 키워드(ANSI 예약 키워드 LIKE와 같은 기능 수행)와 SOME 키워드(ANSI 예약 키워드 ANY의 동의어)를 예약합니다.
또한, Snowflake SQL은 구문 분석 모호성을 피하기 위해 FROM 목록에서 LEFT, OUTER, JOIN 등과 같은 키워드를 테이블 이름이나 별칭으로 사용하는 것과 스칼라 식에서 TRUE, FALSE, CASE 등과 같은 키워드를 열 참조로 사용하는 것을 금지합니다.
다음 표에는 Snowflake의 예약 키워드 목록과 엄격하게 예약된 것은 아니지만 사용 제한이 있는 키워드의 목록이 나와 있습니다.
키워드 |
설명 |
---|---|
A |
|
ACCOUNT |
SHOW 명령에서 식별자로 사용할 수 없습니다(예: ‘SHOW … IN <식별자>’). |
ALL |
ANSI에 의해 예약됨. |
ALTER |
ANSI에 의해 예약됨. |
AND |
ANSI에 의해 예약됨. |
ANY |
ANSI에 의해 예약됨. |
AS |
ANSI에 의해 예약됨. |
B |
|
BETWEEN |
ANSI에 의해 예약됨. |
BY |
ANSI에 의해 예약됨. |
C |
|
CASE |
스칼라 식에서 열 참조로 사용할 수 없습니다. |
CAST |
스칼라 식에서 열 참조로 사용할 수 없습니다. |
CHECK |
ANSI에 의해 예약됨. |
COLUMN |
ANSI에 의해 예약됨. |
CONNECT |
ANSI에 의해 예약됨. |
CONNECTION |
SHOW 명령에서 식별자로 사용할 수 없습니다(예: ‘SHOW … IN <식별자>’). |
CONSTRAINT |
CREATE TABLE DDL에서 열 이름으로 사용할 수 없습니다. |
CREATE |
ANSI에 의해 예약됨. |
CROSS |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
CURRENT |
ANSI에 의해 예약됨. |
CURRENT_DATE |
열 이름으로 사용할 수 없습니다(ANSI에 의해 예약됨). |
CURRENT_TIME |
열 이름으로 사용할 수 없습니다(ANSI에 의해 예약됨). |
CURRENT_TIMESTAMP |
열 이름으로 사용할 수 없습니다(ANSI에 의해 예약됨). |
CURRENT_USER |
열 이름으로 사용할 수 없습니다(ANSI에 의해 예약됨). |
D |
|
DATABASE |
SHOW 명령에서 식별자로 사용할 수 없습니다(예: ‘SHOW … IN <식별자>’). |
DELETE |
ANSI에 의해 예약됨. |
DISTINCT |
ANSI에 의해 예약됨. |
DROP |
ANSI에 의해 예약됨. |
E |
|
ELSE |
ANSI에 의해 예약됨. |
EXISTS |
ANSI에 의해 예약됨. |
F |
|
FALSE |
스칼라 식에서 열 참조로 사용할 수 없습니다. |
FOLLOWING |
ANSI에 의해 예약됨. |
FOR |
ANSI에 의해 예약됨. |
FROM |
ANSI에 의해 예약됨. |
FULL |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
G |
|
GRANT |
ANSI에 의해 예약됨. |
GROUP |
ANSI에 의해 예약됨. |
GSCLUSTER |
SHOW 명령에서 식별자로 사용할 수 없습니다(예: ‘SHOW … IN <식별자>’). |
H |
|
HAVING |
ANSI에 의해 예약됨. |
I |
|
ILIKE |
Snowflake에 의해 예약됨. |
IN |
ANSI에 의해 예약됨. |
INCREMENT |
Snowflake 등에 의해 예약됨. |
INNER |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
INSERT |
ANSI에 의해 예약됨. |
INTERSECT |
ANSI에 의해 예약됨. |
INTO |
ANSI에 의해 예약됨. |
IS |
ANSI에 의해 예약됨. |
ISSUE |
SHOW 명령에서 식별자로 사용할 수 없습니다(예: ‘SHOW … IN <식별자>’). |
J |
|
JOIN |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
L |
|
LATERAL |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
LEFT |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
LIKE |
ANSI에 의해 예약됨. |
LOCALTIME |
열 이름으로 사용할 수 없습니다(ANSI에 의해 예약됨). |
LOCALTIMESTAMP |
열 이름으로 사용할 수 없습니다(ANSI에 의해 예약됨). |
M |
|
MINUS |
Snowflake 등에 의해 예약됨. |
N |
|
NATURAL |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
NOT |
ANSI에 의해 예약됨. |
NULL |
ANSI에 의해 예약됨. |
O |
|
OF |
ANSI에 의해 예약됨. |
ON |
ANSI에 의해 예약됨. |
OR |
ANSI에 의해 예약됨. |
ORDER |
ANSI에 의해 예약됨. |
ORGANIZATION |
SHOW 명령에서 식별자로 사용할 수 없습니다(예: ‘SHOW … IN <식별자>’). |
Q |
|
QUALIFY |
Snowflake에 의해 예약됨. |
R |
|
REGEXP |
Snowflake에 의해 예약됨. |
REVOKE |
ANSI에 의해 예약됨. |
RIGHT |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
RLIKE |
Snowflake에 의해 예약됨. |
ROW |
ANSI에 의해 예약됨. |
ROWS |
ANSI에 의해 예약됨. |
S |
|
SAMPLE |
ANSI에 의해 예약됨. |
SCHEMA |
SHOW 명령에서 식별자로 사용할 수 없습니다(예: ‘SHOW … IN <식별자>’). |
SELECT |
ANSI에 의해 예약됨. |
SET |
ANSI에 의해 예약됨. |
SOME |
Snowflake에 의해 예약됨. |
START |
ANSI에 의해 예약됨. |
T |
|
TABLE |
ANSI에 의해 예약됨. |
TABLESAMPLE |
ANSI에 의해 예약됨. |
THEN |
ANSI에 의해 예약됨. |
TO |
ANSI에 의해 예약됨. |
TRIGGER |
ANSI에 의해 예약됨. |
TRUE |
스칼라 식에서 열 참조로 사용할 수 없습니다. |
TRY_CAST |
스칼라 식에서 열 참조로 사용할 수 없습니다. |
U |
|
UNION |
ANSI에 의해 예약됨. |
UNIQUE |
ANSI에 의해 예약됨. |
UPDATE |
ANSI에 의해 예약됨. |
USING |
FROM 절에서 테이블 이름이나 별칭으로 사용할 수 없습니다. |
V |
|
VALUES |
ANSI에 의해 예약됨. |
VIEW |
SHOW 명령에서 식별자로 사용할 수 없습니다(예: ‘SHOW … IN <식별자>’). |
W |
|
WHEN |
스칼라 식에서 열 참조로 사용할 수 없습니다. |
WHENEVER |
ANSI에 의해 예약됨. |
WHERE |
ANSI에 의해 예약됨. |
WITH |
ANSI에 의해 예약됨. |