SQLite INDEXED BY子句
“INDEXED BY index-name”子句指定必须使用命名索引来查找前面表中的值。
如果index-name不存在或无法使用于查询,那么SQLite语句的准备将失败。
“NOT INDEXED”子句指定在访问前面的表时不使用任何索引,包括由UNIQUE和PRIMARY KEY约束隐式创建的索引。
然而,即使指定了”NOT INDEXED”,INTEGER PRIMARY KEY仍可用于查找条目。
语法
以下是INDEXED BY子句的语法,并可与DELETE、UPDATE或SELECT语句一起使用。
SELECT|DELETE|UPDATE column1, column2...
INDEXED BY (index_name)
table_name
WHERE (CONDITION);
示例
考虑表格 公司 我们将创建一个索引,并使用它来进行索引操作。
sqlite> CREATE INDEX salary_index ON COMPANY(salary);
sqlite>
现在,在选择来自公司表的数据时,您可以使用以下INDEXED BY子句−
sqlite> SELECT * FROM COMPANY INDEXED BY salary_index WHERE salary > 5000;
这将产生以下结果。
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