sqlite

pangkalan data; .di tempat...

n.tempat,tempatpron.where

Fungsi SQLite Where sintaks

Fungsi: SQLite's WHERE klausa digunakan untuk menentukan syarat untuk mendapatkan data daripada satu jadual atau berbilang jadual. Jika syarat yang diberikan dipenuhi, iaitu benar, nilai tertentu dikembalikan daripada jadual. Anda boleh menggunakan klausa WHERE untuk menapis rekod dan mendapatkan rekod yang anda perlukan sahaja.

Sintaks: PILIH lajur1, lajur2, lajurN DARI nama_jadual DI MANA [syarat]

Fungsi SQLite Where contoh

COMPANY 表有以下記錄:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
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
下面的實例演示了 SQLite 邏輯運算符的用法。下面的 SELECT 語句列出了 AGE 大于等于 25 且工資大于等于 65000.00 的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
下面的 SELECT 語句列出了 AGE 大于等于 25 或工資大于等于 65000.00 的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
下面的 SELECT 語句列出了 AGE 不為 NULL 的所有記錄,結(jié)果顯示所有的記錄,意味著沒有一個記錄的 AGE 等于 NULL:

sqlite>  SELECT * FROM COMPANY WHERE AGE IS NOT NULL;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
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
下面的 SELECT 語句列出了 NAME 以 'Ki' 開始的所有記錄,'Ki' 之后的字符不做限制:

sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22          South-Hall  45000.0
下面的 SELECT 語句列出了 NAME 以 'Ki' 開始的所有記錄,'Ki' 之后的字符不做限制:

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*';
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22          South-Hall  45000.0
下面的 SELECT 語句列出了 AGE 的值為 25 或 27 的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
下面的 SELECT 語句列出了 AGE 的值既不是 25 也不是 27 的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 );
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
3           Teddy       23          Norway      20000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0
下面的 SELECT 語句列出了 AGE 的值在 25 與 27 之間的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
下面的 SELECT 語句使用 SQL 子查詢,子查詢查找 SALARY > 65000 的帶有 AGE 字段的所有記錄,后邊的 WHERE 子句與 EXISTS 運算符一起使用,列出了外查詢中的 AGE 存在于子查詢返回的結(jié)果中的所有記錄:

sqlite> SELECT AGE FROM COMPANY 
        WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
AGE
----------
32
25
23
25
27
22
24
下面的 SELECT 語句使用 SQL 子查詢,子查詢查找 SALARY > 65000 的帶有 AGE 字段的所有記錄,后邊的 WHERE 子句與 > 運算符一起使用,列出了外查詢中的 AGE 大于子查詢返回的結(jié)果中的年齡的所有記錄:

sqlite> SELECT * FROM COMPANY 
        WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0