SQLite - จัดทำดัชนีตามข้อ
ส่วนคำสั่ง "INDEXED BY index-name" ระบุว่าต้องใช้ดัชนีที่ตั้งชื่อเพื่อค้นหาค่าในตารางก่อนหน้า
หากไม่มีชื่อดัชนีหรือไม่สามารถใช้สำหรับแบบสอบถามได้การเตรียมคำสั่ง SQLite จะล้มเหลว
อนุประโยค "NOT INDEXED" ระบุว่าจะไม่มีการใช้ดัชนีเมื่อเข้าถึงตารางก่อนหน้านี้รวมถึงดัชนีโดยนัยที่สร้างขึ้นโดยข้อ จำกัด UNIQUE และ PRIMARY KEY
อย่างไรก็ตามยังสามารถใช้ INTEGER PRIMARY KEY เพื่อค้นหารายการได้แม้ว่าจะระบุ "NOT INDEXED" ก็ตาม
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์สำหรับคำสั่ง 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 clause ดังต่อไปนี้ -
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