SQL予約語のバージョン別履歴 どの語が、どの製品の、どのバージョンで予約語になったかを公式ドキュメントから抽出

「予約語」は製品ごとに違う概念です

SQLの予約語を横断して調べようとすると、最初につまずくのがここです。「予約語」という同じ1語が、製品によって別のものを指しています。区分の数が違うだけでなく、そもそも区分を持たない製品や、自製品の予約語一覧を公開していない製品があります。このページは、収録している5製品それぞれの公式ドキュメントが、この語をどう定義しているかを並べたものです。

情報確認日: 2026年7月30日。引用は各製品の公式ドキュメントの原文(英語)からで、日本語部分は当サイトによる説明です。

1. PostgreSQL — 区分は2つではなく4つある

PostgreSQL の資料は、キーワードを4つに分けています。「予約語か、そうでないか」の2択ではありません。

資料上の表示意味最新収録版(PostgreSQL 18)の語数
予約語識別子として使えない(ただし列ラベルには書ける)78
予約語(関数名・型名としては使える)予約語だが、関数名・型名としては使える23
非予約語(関数名・型名には使えない)非予約語だが、関数名・型名には使えない63
非予約語列名・表名として使える330

さらに、この資料は「予約語」という言葉自体に注釈を付けています。原文はこうです。

Even reserved key words are not completely reserved in PostgreSQL, but can be used as column labels (for example, SELECT 55 AS CHECK, even though CHECK is a reserved key word).

出典: PostgreSQL 18 Documentation, Appendix C. SQL Key Words(原典・2026年7月30日確認)

つまり PostgreSQL では、「予約語」であっても列ラベルとしては書けるという状態があります。「予約語だから使えない」という一般的な理解が、そのままは当てはまりません。

加えて PostgreSQL 14 以降の資料には、区分の後ろに , requires AS という注記が付く語があります(PostgreSQL 18時点で39語)。これは区分とは別の軸で、列ラベルとして書くときに手前に AS が必要であることを示すものです。

2. SQLite — 予約語という区分そのものが無い

SQLite の公式ドキュメントには、予約語と非予約語を分ける記述がありません。あるのは「パーサが特別に扱うキーワード」の一覧だけです。原文はこうです。

Regardless of the compile-time configuration, any identifier that is not on the following 147-element list is not a keyword to the SQL parser in SQLite

出典: SQLite Documentation, SQLite Keywords(原典・2026年7月30日確認。ページ末尾の更新日表示は 2022-11-26)

本サイトが SQLite について収録しているのは、この「キーワードかどうか」だけです。他製品の「予約語」と同じ意味の値として並べていません。また同じページには、ビルド時の設定によって一部のキーワードが無効になりうることも書かれています。

なお SQLite 自身が、この一覧が今後も増えることを明言しています。

SQLite adds new keywords from time to time when it takes on new features.

出典: 同上

実際、本サイトが収録している50バージョンの間に、キーワードは116語から148語へ増えています。

3. Oracle Database — 「予約語」と「キーワード」を別のものとして扱う

Oracle の資料は、予約語の一覧を「引用符で囲まない識別子には使えない語」と定義しています。原文はこうです。

You cannot use Oracle SQL reserved words as nonquoted identifiers. Quoted identifiers can be reserved words, although this is not recommended.

出典: Oracle Database SQL Language Reference, Oracle SQL Reserved Words(原典・2026年7月30日確認)

同じページには、一覧に載っている語のうちどれが ANSI の予約語でもあるかがアスタリスクで示されています(Oracle Database 26時点で60語)。また、予約語の一覧とは別に、常に予約されるのか特定の用途でだけ予約されるのかを製品側のデータ辞書ビューで確認できる、とも書かれています。つまり Oracle 自身、この一覧が「予約の強さ」までは表していないと述べています。

4. SQL Server — 1ページに4つの一覧がある

SQL Server の予約語ページには、性質の違う一覧が並んで載っています。

  1. Transact-SQL の予約語 — 本サイトが収録しているのはこれだけです
  2. Azure Synapse Analytics 専用の予約語 — SQL Server の予約語ではありません
  3. ODBC の予約語 — 資料自身が、これは ISO の予約語一覧と同じものだと述べています
  4. 将来のバージョンで予約されるかもしれない語 — 現時点では予約語ではありません

そのうえで資料は、ISO 側の一覧と SQL Server の一覧が一致しないことを明言しています。

The ISO standards reserved keywords list sometimes can be more restrictive than SQL Server and at other times less restrictive.

出典: Microsoft Learn, Reserved Keywords (Transact-SQL)(原典・2026年7月30日確認)

4つを合わせると、重複を除いて484語になります。Transact-SQL の予約語だけを数えた185語の2.6倍です。本サイトは 1 だけを収録し、2〜4 は数に入れていません。

5. Db2 — 3つの製品系統で別々。うち1つは自製品の予約語一覧を持たない

Db2 は「Db2 for z/OS」「Db2 (LUW)」「Db2 for i」という3つの製品系統に分かれており、ドキュメントの体系もバージョン番号も別です。そして、この3つは同じ形の資料を持っていません。

Db2 (LUW) の資料には、バージョンによっては次の文が明示的に入っています。

There are no specifically reserved words in DB2 Version 9.

出典: IBM Documentation, Reserved schema names and reserved words(DB2 9.7 / 10.1 の版。2026年7月30日確認)。10.5 以降の版ではこの文は見当たりません

本サイトは Db2 (LUW) を「予約語の一覧」として扱わず、「移植性のために予約語として扱うことが推奨される語」の一覧として、性質を明記したうえで収録しています。

6. 共通していること

区分の考え方は製品ごとに違いますが、どの製品も「引用符で囲めば識別子として使える」という逃げ道を用意している点は共通しています。そして、どの製品もそれを推奨していません。Oracle は「推奨しない」と明記し、SQLite は「将来キーワードが増えるので、英単語の識別子は常に引用符で囲むほうがよい」と勧めています。

つまり実務上の問いは「この語は予約語か」ではなく、「自分が使おうとしているバージョンで予約語か。そして、これから上げるバージョンで予約語になっていないか」になります。本サイトが現在の可否ではなくバージョン別の履歴を並べているのは、そのためです。

7. このページの数字について

上に出てくる語数は、すべて本サイトが公式ドキュメントから機械的に抽出した実測値です。抽出の対象・除外したもの・到達できなかったものは収録範囲と、収録していないものに一覧があります。

広告スペース

データのダウンロード

変更履歴

誤りのご報告

掲載内容に誤りを見つけた場合は、運営者情報のページからお知らせください。出典としている公式ドキュメントは改定されることがあるため、ご指摘は確認のうえ反映します。

このページを引用する場合

本ページの情報を引用・紹介いただく場合は、ページ名「「予約語」は製品ごとに違う概念です」と情報確認日「2026年7月30日」をあわせてお示しください。当ページへのリンクは任意です(リンクいただける場合は https://www.conbu.jp/tool/sql-reserved/what-is-reserved-word.html をご利用ください)。引用の詳しい案内はデータの引用・転載についてをご覧ください。

免責事項: 本サイトは各製品の提供元の公式サイトではなく、「その語を識別子に使ってよいか」を判定するものでもありません。掲載しているのは、公式ドキュメントに何が書かれているかを調査時点で抽出した一覧です。ドキュメントの記載と実装の挙動が一致している保証はありません。詳細は免責事項をご確認ください。