SQLite - DIINDEKS OLEH Klausul

Klausul "INDEXED BY index-name" menetapkan bahwa indeks bernama harus digunakan untuk mencari nilai pada tabel sebelumnya.

Jika nama indeks tidak ada atau tidak dapat digunakan untuk kueri, maka persiapan pernyataan SQLite gagal.

Klausul "NOT INDEXED" menentukan bahwa tidak ada indeks yang digunakan saat mengakses tabel sebelumnya, termasuk indeks tersirat yang dibuat oleh batasan UNIQUE dan PRIMARY KEY.

Namun, INTEGER PRIMARY KEY masih dapat digunakan untuk mencari entri meskipun "NOT INDEXED" ditentukan.

Sintaksis

Berikut ini adalah sintaks untuk klausa INDEXED BY dan dapat digunakan dengan pernyataan DELETE, UPDATE atau SELECT.

SELECT|DELETE|UPDATE column1, column2...
INDEXED BY (index_name)
table_name
WHERE (CONDITION);

Contoh

Pertimbangkan tabel PERUSAHAAN Kami akan membuat indeks dan menggunakannya untuk melakukan operasi INDEXED BY.

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

Sekarang memilih data dari tabel PERUSAHAAN Anda dapat menggunakan klausa INDEXED BY sebagai berikut -

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

Ini akan menghasilkan hasil sebagai berikut.

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