开发学院

您的位置:首页>教程>正文

教程正文

SQLite INDEXED BY 子句

SQLite INDEXED BY 子句

  "INDEXED BY index-name" 子句规定必须需要命名的索引来查找前面表中值。

  如果索引名 index-name 不存在或不能用于查询,然后 SQLite 语句的准备失败。

  "NOT INDEXED" 子句规定当访问前面的表(包括由 UNIQUE 和 PRIMARY KEY 约束创建的隐式索引)时,没有使用索引。

  然而,即使指定了 "NOT INDEXED",INTEGER PRIMARY KEY 仍然可以被用于查找条目。

语法

SELECT|DELETE|UPDATE column1, column2...
INDEXED BY (index_name)
table_name
WHERE (CONDITION);

例子

  假设有一张表COMPANY,我们将创建一个索引,并用它进行 INDEXED BY 操作。

sqlite> CREATE INDEX salary_index ON COMPANY(salary);
sqlite>

  现在使用 INDEXED BY 子句从表 COMPANY 中选择数据:

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