SQLite-INDEXED BY 절

"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>

이제 테이블 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