예약된 키워드와 제한된 키워드

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에 의해 예약됨.