PostgreSQL | PostgreSQL 기본 구성 | 식별자와 키워드

PostgreSQL의 식별자와 키워드에 대해 설명한다.

식별자와 키워드

예를 들어, 다음과 같이 SQL 명령을 예로 살펴 보겠다.

SELECT * FROM MYTBL;

이때 SELECT와 FROM 같이 SQL에서 의미를 가지고 있는 단어는 키워드라고 하고, 테이블 이름에 사용되는 MYTBL은 식별자라고 한다.

키워드는 따옴표를 붙이지 않는 경우는 식별자로 사용할 수 없다. 예를 들어, 테이블명으로 키워드 SELECT를 사용하여 테이블을 만들려고 하면 오류가 발생한다.

postgres=# create table select (id integer);
오류:  구문 오류, "select" 부근
줄 1: create table select (id integer);
                   ^
postgres=#

식별자와 키워드는 인용 식별자 이외는 대소 문자를 구분하지 않는다. 그러기에 다음 두 SQL 명령은 같은 의미이다.

SELECT * FROM MYTBL;
select * from mytbl;

식별자와 키워드는 첫 번째 문자는 문자 또는 밑줄(_)로 시작하고, 두번째 이후는 문자는 문자, 밑줄, 숫자, 달러 기호 ($)를 사용할 수 있다. 단지 식별자에 달러 기호는 사용할 수 없는 데이터베이스도 있으므로 자주 사용하지 않는 것이 좋다.

인용(따옴표) 식별자

SELECT 또는 UPDATE 등 SQL로 의미를 가진 단어는 키워드로 PostgreSQL에 등록되어 있다. 키워드는 식별자는 기본적으로 사용할 수 없다. 단지 키워드와 일반적 사용할 수 없는 공백을 포함한 값은 인용함으로써 식별자로 데이터베이스 이름과 테이블 이름에 사용할 수 있다.

인용 식별자 사용하려면 문자열을 큰 따옴표 (")로 둘러 쌓아야 한다. 예를 들어, 테이블 이름으로 키워드 SELECT를 사용하여 테이블을 만들려면 다음과 같이 인용 식별자를 사용한다.

postgres=# create table "select"(id integer);
CREATE TABLE
postgres=#

이번에는 오류가 발생하지 않고 테이블을 만들 수 있었다. 여기서 테이블 이름은 SELECT 대신 “SELECT"으로 한 점이 앞에서와는 달랐다.

인용 식별자으로는 어떤 문자도 포함할 수 있다. 큰 따옴표 자신을 문자로 사용하는 경우는 2개 겹쳐서 ("") 작성한다.

PostgreSQL로 등록 된 키워드 목록

PostgreSQL로 등록되어 있는 키워드는 다음과 같다.

ALL
ANALYSE
ANALYZE
AND
ANY
ARRAY
AS
ASC
ASYMMETRIC
AUTHORIZATION (함수 또는 형식으로 사용 가능)
BINARY (함수 또는 형식으로 사용 가능)
BOTH
CASE
CAST
CHECK
COLLATE
COLLATION (함수 또는 형식으로 사용 가능)
COLUMN
CONCURRENTLY (함수 또는 형식으로 사용 가능)
CONSTRAINT
CREATE
CROSS (함수 또는 형식으로 사용 가능)
CURRENT_CATALOG
CURRENT_DATE
CURRENT_ROLE
CURRENT_SCHEMA (함수 또는 형식으로 사용 가능)
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
DEFAULT
DEFERRABLE
DESC
DISTINCT
DO
ELSE
END
EXCEPT
FALSE
FETCH
FOR
FOREIGN
FREEZE (함수 또는 형식으로 사용 가능)
FROM
FULL (함수 또는 형식으로 사용 가능)
GLOBAL
GRANT
GROUP
HAVING
ILIKE (함수 또는 형식으로 사용 가능)
IN
INLINE
INNER (함수 또는 형식으로 사용 가능)
INTERSECT
INTO
IS (함수 또는 형식으로 사용 가능)
ISNULL (함수 또는 형식으로 사용 가능)
LATERAL
LEFT (함수 또는 형식으로 사용 가능)
LIKE (함수 또는 형식으로 사용 가능)
LIMIT
LOCALTIME
LOCALTIMESTAMP
NATURAL (함수 또는 형식으로 사용 가능)
NOT
NOTNULL (함수 또는 형식으로 사용 가능)
NULL
OFFSET
ON
ONLY
OR
ORDER
OUTER (함수 또는 형식으로 사용 가능)
OVERLAPS (함수 또는 형식으로 사용 가능)
PLACING
PRIMARY
REFERENCES
RETURNING
RIGHT (함수 또는 형식으로 사용 가능)
SELECT
SESSION_USER
SIMILAR (함수 또는 형식으로 사용 가능)
SOME
SYMMETRIC
TABLE
TABLESAMPLE (함수 또는 형식으로 사용 가능)
THEN
TO
TRAILING
TRUE
UNION
UNIQUE
USER
USING
VARIADIC
VERBOSE (함수 또는 형식으로 사용 가능)
WHEN
WHERE
WINDOW
WITH

여기까지 PostgreSQL의 식별자와 키워드에 대해 설명하였다.