Indice Expression - Expression index
Un indice di espressione , noto anche come un indice basato funzione , è una base di dati di indice che si basa su un'espressione generica, piuttosto che una o più colonne . Ciò consente indici da definire per condizioni di query comuni che dipendono dai dati in una tabella, ma non sono effettivamente memorizzati nella tabella.
Un uso comune per un indice espressione è sostenere case-insensitive ricerca o vincoli. Ad esempio, se un sito web vuole fare i nomi utente case-insensitive, ma conservano ancora il caso come originariamente immesso dall'utente, un indice può essere creato sulla rappresentazione minuscole del nome utente:
CREATE INDEX users__last_name_lower ON users( lower( last_name ) );
Che creerà un indice univoco su "inferiore (cognome)". Qualsiasi query che ricerca su "inferiore (cognome)" potrebbe poi fare uso di tale indice:
SELECT user_id FROM users WHERE lower( last_name ) = lower( 'Smith' );
supporto database
Le principali banche dati che supportano gli indici di espressione includono: DB2 (dalla versione 10.5), Oracle Database (a partire dalla versione 8i.) E PostgreSQL (poiché almeno la versione 7).