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