索引を作成するには

提供: DB2逆引きWiki
移動: 案内, 検索

DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#実装編】 【DB2逆引きリファレンス目次#索引

目次

前提

  • データベース接続が必要
  • 以下のいずれかが必要: SYSADM権限, DBADM権限, 表に対するINDEX特権, 表に対するCONTROL特権

解説

索引を作成するには、CREATE INDEXを用います。

CREATE [UNIQUE] INDEX 索引名 ON 表名 ( 列指定 )

  [CLUSTER]   [PCTFREE フリースペース指定 ]   [MINPCTUSED マージしきい値指定 ]

  [ALLOW REVERSE SCANS]

UNIQUE
索引キーに対して一意制約を与えます。同じ索引キーをもつ行を表に含めることができなくなります。
索引名
作成する索引の名前を指定します。
表名
索引を作成する表の名前を指定します。
列指定
索引キーを構成する列を以下の形式で定義します。複数の列を指定する場合はカンマで区切って並べます。 列名 [ASCまたはDESC] [, 列名 [ASCまたはDESC] , ....]


ASC
索引における索引キーの並びを決める際、この列の値を昇順で評価します。これがデフォルトです。
DESC
索引における索引キーの並びを決める際、この列の値を降順で評価します。

CLUSTER
作成する索引をクラスター索引として指定します。クラスター索引として指定できる索引は、表につきひとつだけです。
PCTFREE フリースペース指定
索引構築時、各リーフページに残すフリースペースのパーセンテージを指定します。
MINPCTUSED マージしきい値指定
フリースペースの大きくなったリーフページをマージするためのしきい値をパーセンテージで指定します。 リーフページの使用率が、指定されたしきい値より下がるとマージが行われます。
ALLOW REVERSE SCANS
順方向の走査に加え、逆方向の走査もできるように索引を構成します。

使用例

表(ここではsmptab)のひとつの列(ここではname)を索引キーとして用いる索引(ここではsmpidx00)を作成する例。

$ CREATE INDEX smpidx00 ON smptab (name)↓

表(ここではsmptab)のふたつの列(ここではnameとtel)からなる複合索引キーを用いたユニーク索引(ここではsmpidx01)を作成する例。

$ CREATE UNIQUE INDEX smpidx01 ON smptab (name, tel DESC)↓

DESCを指定しているため、telについては降順で評価されます。

注意

  • UNIQUEオプションを指定した場合、NULLも値のひとつとしてカウントされます。

参照

個人用ツール
名前空間

変種
操作
案内
ツール