English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite Основные курсы

SQLite Умные курсы

SQLite API

Индекс предложения в SQLite

Предложение "INDEXED BY 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_nameWHERE (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;

Это приведет к следующим результатам.

ID          NAME        AGE         АДРЕС     ЗАРПЛАТА
----------  ----------  ----------  ----------  ----------
7           James       24          Хьюстон     10000.0
2           Allen       25          Техас       15000.0
1           Paul        32          Калифорния    20000.0
3           Teddy       23          Норвегия      20000.0
4           Mark       25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0