예약 키워드 및 제한 키워드

예약 키워드 및 제한 키워드 (Reserved & limited keywords)

이 문서는 Snowflake SQL에서 예약된(reserved) 키워드와, 엄격하게 예약되지는 않았지만 사용에 제한이 있는 키워드의 목록을 정리해요. 예약 키워드를 식별자로 사용하면 문법 오류가 발생할 수 있으므로 이 목록을 잘 확인해야 해요.

출처: Snowflake SQL Reference

본문

Snowflake SQL은 모든 ANSI 키워드(CHar, DATE, DECIMAL 같은 타입 키워드는 제외)와, 다른 인기 있는 데이터베이스에서 예약하는 일부 추가 키워드(ASC, DESC, MINUS 등)를 예약해요. 또한 Snowflake는 REGEXP와 RLIKE(ANSI 예약 키워드인 LIKE처럼 동작) 키워드와 SOME(ANSI 예약 키워드 ANY의 동의어)을 예약해요.

파싱 모호성을 피하기 위해 Snowflake SQL은 LEFT, OUTER, JOIN 같은 키워드를 FROM 목록의 테이블 이름이나 별칭으로 사용하는 것, 그리고 TRUE, FALSE, CASE 같은 키워드를 스칼라 표현식의 컬럼 참조로 사용하는 것도 금지해요.

다음 표는 Snowflake의 예약 키워드와, 엄격하게 예약되지는 않지만 사용 제한이 있는 키워드 목록이에요:

| Keyword | Comment | | 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가 예약. | | WINDOW | ANSI가 예약. | | WITH | ANSI가 예약. |

더 알아보기 (Learn more)