CREATE INDEX

CREATE INDEX ステートメントは、DB2 Everyplace 表に索引を作成するために使用します。

呼び出し

このステートメントは、アプリケーション・プログラム内で DB2 CLI 関数を用いて使用することができます。 また、CLP を介して出すこともできます。

構文

>>-CREATE--INDEX--索引名--ON--表名------------------------------>
 
      .-,---------------------------------.
      V                          .-ASC--. |
>--(----+-列名----------------+--+------+-+--)-----------------><
        +-UCASE--(--| 式 |--)-+  '-DESC-'
        '-LCASE--(--| 式 |--)-'
 
 

説明

INDEX 索引名
索引に名前を付けます。
ON 表名
表名 は、索引を作成する表の名前を指定します。
列名
索引の場合、列名は索引キーの一部となる列を示します。

各列名は、表の列を示す、修飾されていない名前でなければなりません。使用する列は 8 列以下としてください。 列名を繰り返すことはできません (SQLSTATE 42711)。

指定された各列の長さは 1024 バイトを超えてはなりません。

ASC
索引項目を列の昇順で並べます。これはデフォルトです。

DESC
索引項目を列の降順で並べます。
LCASE / UCASE

LCASE 関数または LOWER 関数は、SBCS 文字がすべて小文字に変換されたストリングを戻します。つまり、文字 A から Z が文字 a から z に変換され、発音区別符号が付いた文字があれば、それらは同等の小文字に変換されます。

引き数は、値のデータ・タイプが CHAR か VARCHAR である式でなくてはなりません。

上記の関数の結果は、引き数と同じデータ・タイプと長さの属性を持つことになります。引き数がヌル値もとる場合は、結果がヌルになることがあります。つまり、 引き数がヌルであれば、結果はヌル値になります。

EMPLOYEE 表の列 JOB の値に含まれる文字は小文字で戻されることを確認してください。例えば、次のようにします。

SELECT LCASE(JOB)
     FROM EMPLOYEE
     WHERE EMPNO = '000020';

規則

注意事項

EMPLOYEE 表に JOB_BY_DPT という名前の索引を作成します。 索引項目を各部門 (WORKDEPT) 内でジョブ名称 (JOB) の昇順で並べます。

CREATE INDEX JOB_BY_DPT 
ON EMPLOYEE (WORKDEPT, JOB)

関連した解説