【SQLite入門】インデックスの作成方法

SQLiteで、インデックス、ユニークインデックス、部分インデックスを作成する方法について記載します。

1. インデックスの作成方法

構文

CREATE INDEX インデックス名 ON テーブル名 (カラム1, ・・・);

※ カラムは複数指定できます。

hogeテーブル の t1列 にインデックスを作成します。

2. ユニークインデックスの作成方法

構文

CREATE UNIQUE INDEX インデックス名 ON テーブル名 (カラム1,・・・)

※ カラムは複数指定できます。

hogeテーブル の t1列 にユニークインデックスを作成します。

3. 部分インデックスの作成方法

通常のインデックスは、表の全ての行に対してインデックスを生成しますが、部分インデックスは、条件に一致する行のみインデックスを作成します。

部分インデックスは通常のインデックス・ユニークインデックスのどちらでも作成することができます。

構文

CREATE (UNIQUE) INDEX インデックス名 ON テーブル名 (カラム1・・・) WHERE 条件

例1

hogeテーブル の t1列 が NULL 以外の行に対して status列にインデックスを作成します。

where句の条件で使用する列は、インデックスを作成する列以外も指定できます。

今回の場合は、次のように指定しています。
インデックスを作成する列:status
WHERE句の条件に指定する列:t1

例2

hogeテーブル の status列 が 2以上の行に対してユニークインデックスを作成します。

4. 存在する場合は作成しない

同名のインデックスが存在しない場合のみ、インデックスを作成することができます。

構文

CREATE INDEX IF NOT EXISTS インデックス名 ON テーブル名 (カラム1, カラム2,・・・);

※ インデックス、ユニークインデックス、部分インデックス共通で使用できます。

インデックス名の前に、”IF NOT EXISTS” をつけると存在しない場合のみ作成することができます。

すでに存在する場合は、SQL文が無視されエラーにもなりません。

hogeテーブル の t1列 にインデックスを作成します。

インデックスの削除方法については、こちらに記載しています。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする