インデックスの作成

提供: InterBase

InterBase クイック スタート:Part II - データ定義 へ戻る

インデックスは、1 のテーブルにおける、1 つまたは複数の列に基づいています。 指定された列の内容を順序付けし、その情報をディスク上に保存することで、それら列へのアクセスを高速化します。 インデックスはデータ検索のパフォーマンスを向上させますが、ディスク スペースを取り、挿入および更新のスピードを劣化させる可能性があるため、大抵は、頻繁にクエリがかけられる列に対して使用します。 インデックスはまた、一意性と、参照整合性の制約を強化します。

InterBase は、UNIQUE および PRIMARY KEY の列について、インデックスを自動的に生成します。 制約の詳細については、『データ定義ガイド』を参照してください。

CREATE INDEX 文を使用して、インデックスを作成します。 簡略化した構文は次にようになります:

CREATE INDEX name ON table (columns)

任意で、CREATE INDEX キーワードに続いて、1 つまたは複数の ASCENDING、DESCENDING、UNIQUE キーワードを追加することができます。


Image 025.jpgnamex インデックスを作成する

Employee テーブルに対するインデックスを、次のコードを入力して定義します:

 CREATE INDEX namex ON Employee (last_name, first_name)

この文は、namex というインデックスを、Employee テーブルの列 last_name と first_name に対して、定義しています。

インデックス エントリの重複を防ぐ

重複エントリをなくすインデックスを定義するには、UNIQUE キーワードを CREATE INDEX に含めます。 UNIQUE インデックスが定義された後、ユーザーはインデックス付けされた列に、同じ値がすでに存在する場合には、その値を挿入またはその値へ更新することはできません。

複数列で定義される一意インデックス(下の例の prodtypex など)の場合、個々の列には同じ値を入力することはできますが、インデックスのすべての列に入力される値の組み合わせでは、各行が一意に識別できなければなりません。

すでに一意ではない値を含んでいる列に対して、UNIQUE インデックスを作成することはできません。

Image 025.jpgUNIQUE インデックスを作成する

次を入力して、prodtypex という名の一意インデックスを、Project テーブル上に作成します:

CREATE UNIQUE INDEX prodtypex ON Project (product, proj_name)

次は: