"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);
假設有表 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;