Index výrazů - Expression index
Výraz index , také známý jako index založený funkce , je databáze index , který je postaven na generický výraz, spíše než jeden nebo více sloupců . To umožňuje definovat indexy pro běžné podmínky dotazu, které závisí na datech v tabulce, ale ve skutečnosti nejsou v této tabulce uloženy.
Běžným používáním indexu výrazu je podpora vyhledávání nebo omezení bez ohledu na velikost písmen . Například pokud web chce, aby se v uživatelských jménech nerozlišovala malá a velká písmena, ale přesto se zachovala malá a velká písmena tak, jak byla původně zadána uživatelem, může být vytvořen index pro malé zobrazení uživatelského jména:
CREATE INDEX users__last_name_lower ON users( lower( last_name ) );
Tím se vytvoří jedinečný index „nižší (příjmení)“. Všechny dotazy, které hledají na „nižší (příjmení)“, by pak mohly tento index využít:
SELECT user_id FROM users WHERE lower( last_name ) = lower( 'Smith' );
Podpora databáze
Mezi hlavní databáze, které podporují indexy výrazů, patří: DB2 (od verze 10.5), Oracle Database (od vydání 8i.) A PostgreSQL (od minimálně verze 7).