識別子とキーワード

PostgreSQL ではテーブル名などの名前を識別子と呼びます。また SELECT などの特別な意味を持つ単語はキーワードと呼ばれます。ここでは における識別子とキーワードについて解説し、あわせて PostgreSQL で用意されているキーワードの一覧について解説します。

(Last modified: )

識別子とキーワードについて

例えば次のように SQL コマンドをを例に見てみます。

SELECT * FROM MYTBL;

この時 SELECT や FROM のように SQL の中に意味を持っている単語はキーワードと呼ばれます。それに対してテーブル名に使われている MYTBL は識別子と呼ばれます。

キーワードはあとで説明する引用符を付けない場合は識別子として利用できません。例えばテーブル名としてキーワードの SELECT を使用してテーブルを作成しようとするとエラーが発生します。

create table select (id integer);

識別子とキーワードについて(1)

識別子とキーワードは引用符付き識別子以外は大文字と小文字の区別をしません。なので次の 2 つの SQL コマンドは同じ意味となります。

SELECT * FROM MYTBL;
select * from mytbl;

識別子とキーワードは 1 文字目は文字またはアンダーバー(_)で始まり、 2 文字目以降は文字、アンダーバー、数字、ドル記号($)を使用できます。ただ識別子にドル記号は使用できないデータベースもあるのであまり使用しない方がいいかもしれません。

引用符付き識別子

SELECT や UPDATE など SQL として意味を持つ単語はキーワードとして PostgreSQL に登録されています。キーワードは識別子には基本的に利用できません。ただキーワードや通常使用できない空白などを含む値は引用符付きにすることで識別子としてデータベース名やテーブル名に使用できます。

引用符付き識別子にするには文字列をダブルクォーテーション(")で囲います。例えばテーブル名としてキーワードの SELECT を使用してテーブルを作成する場合は次のように引用符付き識別子にします。

create table "select" (id integer);

引用符付き識別子(1)

今度はエラーとならずにテーブルを作成できました。なおテーブル名は 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 における識別子とキーワードについて解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。