《Oracle命令语法速查》【 CREATE INDEX 】

インデックス(索引)を作成する


(テーブル索引型)
CREATE ┬────────────────┬INDEX [ スキーマ . ] 索引名 →
       ├ BITMAP ────────────┤
       │[ ビットマップ索引を作成する ]│
       └ UNIQUE ────────────┘
        [ UNIQUE(重複不可)索引を作成する ]
→ ON [ スキーマ . ] 表名 [ 別名 ] ( ┬ { 列名 | 列式 } [ ASC | DESC ] ┬ ) →
                                     └ ← , ─────────────┘
      [ 指定した列で構成された索引を作成する        ]
      [   ASC  : 昇順                               ]
      [   DESC : 降順(実際には常に昇順で格納される) ]
→┬───────┬ ;
  ├┬┬ (*2) ┬┬┤
  ││└ (*3) ┘││
  │├ (*1) ──┤│
  │└ ← ───┘│
  └ (*4) ────┘

(クラスタ索引型)
CREATE ┬────────────────┬INDEX [ スキーマ . ] 索引名 →
       ├ BITMAP ────────────┤
       │[ ビットマップ索引を作成する ]│
       └ UNIQUE ────────────┘
        [ UNIQUE(重複不可)索引を作成する ]
→ ON CLUSTER [ スキーマ . ] クラスタ名 (*1) ;
        [ 指定したクラスタの索引を作成する ]

(ビットマップ結合索引型)
CREATE ┬────────────────┬INDEX [ スキーマ . ] 索引名 →
       ├ BITMAP ────────────┤
       │[ ビットマップ索引を作成する ]│
       └ UNIQUE ────────────┘
        [ UNIQUE(重複不可)索引を作成する ]
→ ON [ スキーマ . ] 表名 →
→ ( ┬ [ [ スキーマ ] . 表名 ] 列名 [ ASC | DESC ]  ┬ ) →
     └ ← , ────────────────────┘
→ FROM ┬ [ スキーマ . ] 表名  ┬→
        └ ← , ────────┘
→ WHERE 条件式 ┬───┬ (*1) ;
                └ (*3) ┘

(*1)
→┬─────────────────────────────┬ ; 
  ├<PHYSICAL ATTRIBUTES句> ─────────────────┤
  ├ { LOGGING | NOLOGGING }  ────────────────┤
  ├ ONLINE     ───────────────────────┤
  │[ 索引作成中に対象となる表の DML 操作を可能にする      ]│
  ├ COMPILE STATISTICS     ─────────────────┤
  │[ 統計情報収集の指定                                   ]│
  ├ TABLESPACE { 表領域名 | DEFAULT }  ───────────┤
  │[ 表領域の指定                                         ]│
  ├ { COMPRESS 数値 | NOCOMPRESS } ─────────────┤
  │[ キー圧縮を行う / 行わない                            ]│
  ├ { NOSORT | REVERSE } ──────────────────┤
  │[ データが昇順 / 降順に格納されている為にソートしない  ]│
  ├<PARALLEL句>  ──────────────────────┤
  └ ← ───────────────────────────┘

(*2)[ グローバルパーティションの指定 ]
→ GLOBAL PARTITION BY RANGE ( 列リスト ) →
→ ( PARTITION パーティション名 VALUES LESS THAN ( ┬ 値 ─┬ ) <SEGMENT ATTRIBUTES句> ) →
                                                   └ ← , ┘

(*3)[ ローカルパーティションの指定 ]
→ LOCAL ┬──────────────────────────────┬
         ├(┬ PARTITION [パーティション名[<SEGMENT ATTRIBUTES句>] ]┬)┤
         │ └ ← , ────────────────────────┘ │
         ├ STORE IN ( { ┬ 表領域名 ┬ | DEFAULT } ) [ ┬ (*5) ┬ ] ─┤
         │              └ ← , ──┘                 └ ← , ┘     │
         └(┬ PARTITION [パーティション名 [ TABLESPACE 表領域名 ] ]┬)┘
            └ ← , ────────────────────────┘

(*4)[ ドメインイン索引の指定 ]
→┬──────────────────────────────────┬ ;
  └ INDEXTYPE IS 索引タイプ名 [ PARALLEL ] [ PARAMETERS ( ' string ' ) ┘

(*5)[ サブパーティションの指定 ]
→ PARTITION [パーティション名[<SEGMENT ATTRIBUTES句>] ] →
→┬────────────────────────────────┬→
  ├ STORE IN ( { ┬ 表領域名 ┬ | DEFAULT } )  ──────────┤
  │              └ ← , ──┘                                    │
  └(┬ SUBPARTITION [パーティション名 [ TABLESPACE 表領域名 ] ] ┬)┘
     └ ← , ──────────────────────────┘