Учебники

SQLite — предложение INDEXED BY

Предложение «INDEXED BY index-name» указывает, что именованный индекс должен использоваться для поиска значений в предыдущей таблице.

Если index-name не существует или не может быть использовано для запроса, подготовка оператора SQLite завершится неудачно.

Предложение «НЕ УКАЗАНО» указывает, что при доступе к предыдущей таблице не должен использоваться индекс, включая подразумеваемые индексы, созданные ограничениями UNIQUE и PRIMARY KEY.

Тем не менее, INTEGER PRIMARY KEY можно по-прежнему использовать для поиска записей, даже если указано «NOT INDEXED».

Синтаксис

Ниже приведен синтаксис предложения 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>

Теперь, выбирая данные из таблицы COMPANY, вы можете использовать предложение INDEXED BY следующим образом:

sqlite> SELECT * FROM COMPANY INDEXED BY salary_index WHERE salary > 5000;

Это даст следующий результат.