インデックスの作成
InterBase クイック スタート:Part II - データ定義 へ戻る
インデックスは、1 のテーブルにおける、1 つまたは複数の列に基づいています。 指定された列の内容を順序付けし、その情報をディスク上に保存することで、それら列へのアクセスを高速化します。 インデックスはデータ検索のパフォーマンスを向上させますが、ディスク スペースを取り、挿入および更新のスピードを劣化させる可能性があるため、大抵は、頻繁にクエリがかけられる列に対して使用します。 インデックスはまた、一意性と、参照整合性の制約を強化します。
InterBase は、UNIQUE および PRIMARY KEY の列について、インデックスを自動的に生成します。 制約の詳細については、『データ定義ガイド』を参照してください。
CREATE INDEX 文を使用して、インデックスを作成します。 簡略化した構文は次にようになります:
CREATE INDEX name ON table (columns)
任意で、CREATE INDEX キーワードに続いて、1 つまたは複数の ASCENDING、DESCENDING、UNIQUE キーワードを追加することができます。
namex インデックスを作成する
Employee テーブルに対するインデックスを、次のコードを入力して定義します:
CREATE INDEX namex ON Employee (last_name, first_name)
この文は、namex というインデックスを、Employee テーブルの列 last_name と first_name に対して、定義しています。
インデックス エントリの重複を防ぐ
重複エントリをなくすインデックスを定義するには、UNIQUE キーワードを CREATE INDEX に含めます。 UNIQUE インデックスが定義された後、ユーザーはインデックス付けされた列に、同じ値がすでに存在する場合には、その値を挿入またはその値へ更新することはできません。
複数列で定義される一意インデックス(下の例の prodtypex など)の場合、個々の列には同じ値を入力することはできますが、インデックスのすべての列に入力される値の組み合わせでは、各行が一意に識別できなければなりません。
すでに一意ではない値を含んでいる列に対して、UNIQUE インデックスを作成することはできません。
UNIQUE インデックスを作成する
次を入力して、prodtypex という名の一意インデックスを、Project テーブル上に作成します:
CREATE UNIQUE INDEX prodtypex ON Project (product, proj_name)