NULL値の検索
・列名 IS NULL ‐NULL値を別のデータに置き換える
‐ビットマップ索引を使用する
暗黙の型変換
・CHAR列 = 1
・VARCHAR2列 = 1 ‐比較するデータ型を列のデータ型に合わせる
CHAR列 = '1'
CHAR列 = TO_CHAR(1)
‐INDEXヒントを使用する(索引列にNOT NULL制約が必要)
索引列に対して、関数や算術を実施
・VARCHAR2列||'様' = '斉藤様'
・NUMBER列 * 20 = 10000
・substr(VARCHAR2列,1,2) = 'AB' ‐関数、演算を右辺(索引列でない方)に移動する
・VARCHAR2列 = '斉藤'
・NUMBER列 = 10000/20
・VARCHAR2列 LIKE 'AB%'
‐関数索引を使用する(Oracle 9i以上で使用可能)
[例]
CREATE INDEX SUBSTR_IDX ON
SUPPLIER ( SUBSTR(列名,4,6) );
‐INDEXヒントを使用する(索引列にNOT NULL制約が必要)
LIKEの中間一致、後方一致
・列名 LIKE'%TEST%'
・列名 LIKE'%TEST' ‐INDEXヒントを使用する(索引列にNOT NULL制約が必要)
!=、<>の使用(Not Equals)
・列名 != '1'
・列名 <> '1' ‐inで置き換える(可能な場合)
・列名 in ('2','3')
注)inで指定できる最大リスト数は1000個
‐INDEXヒントを使用する(索引列にNOT NULL制約が必要)