Im working with SQLite3 indexes.
Here is the COMAPNY table:
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'David', 27, 'Texas', 85000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 ); INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
==================================================== =====
SELECT * FROM COMPANY;
Results:
1|Paul|32|California|20000.0 2|Allen|25|Texas|15000.0 3|Teddy|23|Norway|20000.0 4|Mark|25|Rich-Mond |65000.0 5|David|27|Texas|85000.0 6|Kim|22|South-Hall|45000.0 7|James|24|Houston|10000.0
Allows you to create a pay_index index,
CREATE INDEX IF NOT EXISTS salary_index on COMPANY (SALARY);
What does he do and how to use it?
This time I do this index after deleting the old one:
CREATE INDEX IF NOT EXISTS salary_index on COMPANY (SALARY) WHERE SALARY > 50000;
After adding the index, I did:
SELECT * FROM COMPANY;
expecting Id to see only those whose salaries are above 50,000, but I have seen people below that.
And I also tried to do this:
SELECT * FROM COMPANY INDEXED BY salary_index;
Then I get Error: there is no solution for requests Apparently, I have to do: CHOOSE * FROM A COMPANY SIGNED BY HEALTH VALUE WHERE SALARY> 50000; If the condition should be the same as in the index.
So ... how to use indexes?