SQLite - Cláusula INDEXED BY
La cláusula "INDEXED BY index-name" especifica que el índice nombrado debe usarse para buscar valores en la tabla anterior.
Si index-name no existe o no se puede usar para la consulta, la preparación de la declaración SQLite falla.
La cláusula "NOT INDEXED" especifica que no se utilizará ningún índice al acceder a la tabla anterior, incluidos los índices implícitos creados por las restricciones UNIQUE y PRIMARY KEY.
Sin embargo, la TECLA PRIMARIA INTEGER todavía se puede utilizar para buscar entradas incluso cuando se especifica "NO INDEXADO".
Sintaxis
A continuación se muestra la sintaxis de la cláusula INDEXED BY y se puede utilizar con la instrucción DELETE, UPDATE o SELECT.
SELECT|DELETE|UPDATE column1, column2...
INDEXED BY (index_name)
table_name
WHERE (CONDITION);
Ejemplo
Considere la tabla EMPRESA Crearemos un índice y lo usaremos para realizar la operación INDEXADO POR.
sqlite> CREATE INDEX salary_index ON COMPANY(salary);
sqlite>
Ahora, seleccionando los datos de la tabla EMPRESA, puede usar la cláusula INDEXED BY de la siguiente manera:
sqlite> SELECT * FROM COMPANY INDEXED BY salary_index WHERE salary > 5000;
Esto producirá el siguiente resultado.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
7 James 24 Houston 10000.0
2 Allen 25 Texas 15000.0
1 Paul 32 California 20000.0
3 Teddy 23 Norway 20000.0
6 Kim 22 South-Hall 45000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0