【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も値のひとつとしてカウントされます。