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

SQLite 테이블 인덱스

INDEXED BY index-name 절은 TABLE에서 값을 찾기 위해 명명된 인덱스를 사용해야 한다는 것을 지정합니다.

if index-name이 존재하지 않거나 질의에 사용할 수 없으면 SQLite 문의 준비가 실패합니다.

'NOT INDEXED' 절은 INDEXED BY를 사용하지 않고 접근하는 경우를 지정합니다. 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);

온라인 예제

TABLE COMPANY에서 인덱스를 생성하고 INDEXED BY 작업에 사용할 것입니다.

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

현재 TABLE COMPANY에서 데이터를 선택하면, INDEXED BY 절을 사용할 수 있습니다. 예를 들어:

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