式インデックス

式インデックス（しきインデックス、）または関数インデックス（）は関係データベース管理システムで用いられるインデックスの中で、列の組み合わせの代わりに任意の式の結果をキーとするものを指す。
式インデックスを使うと、テーブルに格納された実際のデータとは異なるキーでの検索が可能になる。

式インデックスの一般的な使用例として、大文字小文字を区別しない検索または一意性制約がある。
例えば、ユーザ名を大文字小文字を区別せずに検索を行い、かつ入力されたユーザ名の大文字小文字を保持したい場合が挙げられる。この場合、小文字に変換して格納するだけは要件を満たせない。一意性制約のための UNIQUE INDEX は、大文字もしくは小文字に変換後のユーザ名 (user_name) に対して定義できる：

CREATE UNIQUE INDEX idx_user_name_lower ON user_table( lower( user_name ) );

検索クエリは WHERE句に lower(user_name) を指定することで、
このインデックスを使うことができる：

SELECT user_id FROM user_table WHERE lower(user_name) = lower('Decibel');

 サポート 
 PostgreSQL は式インデックスをサポートしている。
 Microsoft SQL Server は式インデックスを直接はサポートしないが、計算列に対するインデックスの作成で代用できる。

 脚注 

Category:データベース・インデックス技術