"INDEXED BY index-name" 子句规定,为了照顾上表的值,必须使用命名的索引。
如果索引名不存在或不能用于查询,然后编制的SQLite的语句失败。
"NOT INDEXED" 子句规定,没有索引访问时,应使用上表中,包括隐含指数创建UNIQUE和PRIMARY KEY约束。
然而,INTEGER PRIMARY KEY仍然可以被用于搜索条目,即使"NOT INDEXED" 指定。
Syntax
以下是INDEXED BY子句,它可以用来与DELETE,UPDATE或SELECT语句的语法:
SELECT|DELETE|UPDATE column1, column2... INDEXED BY (index_name) table_name WHERE (CONDITION);
例子
考虑表COMPANY ,我们将创建一个索引,并用它进行索引操作。
sqlite> CREATE INDEX salary_index ON COMPANY(salary); sqlite>
现在选择如下INDEXED BY 子句可以使用索引表COMPANY 的数据:
sqlite> SELECT * FROM COMPANY INDEXED BY salary_index WHERE salary > 5000;