- Home ›
- SQLite入門 ›
- SQLiteの基礎知識
SQLiteで定義されているキーワードに関する注意点
SQLite では数多くのキーワードが定義されています。これらのキーワードはテーブル名やカラム名などに使用することはできませんが、適切な記述方法をすることで使用も可能です。ここでは SQLite で定義されているキーワードに関する注意点、及びキーワードの一覧について解説します。
(Last modified: )
キーワードを識別子として使用する方法
SQLite では多くのキーワードが定義されています。あとで一覧を記載しますが TABLE や SELECT といった言葉はキーワードです。キーワードは予約語とも呼ぶ場合があります。
テーブル名やデータベース名は識別子と呼ばれます。識別子にはアルファベットや数字などを組み合わせて付けることができます。例えば booktable や name などです。ただし SQLite のキーワードはそのままでは識別子として使用することができません。例えば select をテーブル名として使用しようとするとエラーが表示されます。
create table select(id, name);
キーワードをテーブル名などに使用するのは出来る限り避けた方が宜しいかと思いますが、何らかの理由でキーワードを識別子と使用したい場合には、次の4つのいずれかの方法を使います。
'keyword'
"keyword"
[keyword]
`keyword`
シングルクォーテーション(')でキーワードを囲った場合、文字列の値として扱われます。識別子を記述すべきところにシングルクォーテーションで囲んだ文字列の値を記述すると識別子として扱われるためこの形式でも指定することができます。
create table 'select'(id, name);
ダブルクォーテーション(")、角括弧([])、グレイヴ・アクセント(`)でキーワードを囲った場合、識別子として扱われます。(なお文字列を記述すべきところにダブルクォーテーションで囲んだ識別子を記述すると文字列として扱われます)。
create table "select"(id, name);
なお角括弧は Access や SQL Server で使われている方式でグレイブ・アクセントは MySQL で使われている方式です。この2つの方式はそれぞれのデータベースとの互換性を保つために用意されていますものなので、通常はシングルクォーテーションかダブルクォーテーションで囲って使用します。
キーワードの一覧
SQLite のキーワードとして定義されているものを下記に記載します。これは下記の公式サイトに掲載されていたものです。
・
ABORT ACTION ADD AFTER ALL ALTER ANALYZE AND AS ASC ATTACH AUTOINCREMENT BEFORE BEGIN BETWEEN BY CASCADE CASE CAST CHECK COLLATE COLUMN COMMIT CONFLICT CONSTRAINT CREATE CROSS CURRENT CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP DATABASE DEFAULT DEFERRABLE DEFERRED DELETE DESC DETACH DISTINCT DO DROP EACH ELSE END ESCAPE EXCEPT EXCLUSIVE EXISTS EXPLAIN FAIL FILTER FOLLOWING FOR FOREIGN FROM FULL GLOB GROUP HAVING IF IGNORE IMMEDIATE IN INDEX INDEXED INITIALLY INNER INSERT INSTEAD INTERSECT INTO IS ISNULL JOIN KEY LEFT LIKE LIMIT MATCH NATURAL NO NOT NOTHING NOTNULL NULL OF OFFSET ON OR ORDER OUTER OVER PARTITION PLAN PRAGMA PRECEDING PRIMARY QUERY RAISE RANGE RECURSIVE REFERENCES REGEXP REINDEX RELEASE RENAME REPLACE RESTRICT RIGHT ROLLBACK ROW ROWS SAVEPOINT SELECT SET TABLE TEMP TEMPORARY THEN TO TRANSACTION TRIGGER UNBOUNDED UNION UNIQUE UPDATE USING VACUUM VALUES VIEW VIRTUAL WHEN WHERE WINDOW WITH WITHOUT
なおこの中の一部のキーワードは特にダブルクォーテーションなどで囲わなくても識別子として使用できるものもあるようです。ただキーワードをそのまま識別子として使用すると分かりにくくなりますのであまり望ましい使い方ではないと思います。
テーブルなどを作成する時に原因不明のエラーになる場合は、テーブル名やカラム名などがキーワードになっていないかどうか確認されてみて下さい。
( Written by Tatsuo Ikura )

著者 /
プログラミングや開発環境構築の解説サイトを運営しています。