sqlite

資料庫(kù);使用;嵌入式關(guān)係資料庫(kù)

#where

英[we?(r)]美[wer]??

adv.哪裡,在哪裡;到哪裡;某種情勢(shì)或位置

conj.在…的地方

n.地方,場(chǎng)所

pron.哪裡

SQLite Where函數(shù) 語(yǔ)法

功能:SQLite的?WHERE?子句用來(lái)指定從一個(gè)資料表或多個(gè)資料表取得資料的條件。如果滿足給定的條件,即為真(true)時(shí),則從表中傳回特定的值。您可以使用 WHERE 子句來(lái)篩選記錄,只取得所需的記錄。

文法:SELECT?column1,?column2,?columnN? ? ? ?FROM?table_name? ? ? ? WHERE?[condition]

###################################################》

SQLite Where函數(shù) 範(fàn)例

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
下面的實(shí)例演示了 SQLite 邏輯運(yùn)算符的用法。下面的 SELECT 語(yǔ)句列出了 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 語(yǔ)句列出了 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 語(yǔ)句列出了 AGE 不為 NULL 的所有記錄,結(jié)果顯示所有的記錄,意味著沒(méi)有一個(gè)記錄的 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 語(yǔ)句列出了 NAME 以 'Ki' 開(kāi)始的所有記錄,'Ki' 之后的字符不做限制:

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

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*';
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22          South-Hall  45000.0
下面的 SELECT 語(yǔ)句列出了 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 語(yǔ)句列出了 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 語(yǔ)句列出了 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 語(yǔ)句使用 SQL 子查詢,子查詢查找 SALARY > 65000 的帶有 AGE 字段的所有記錄,后邊的 WHERE 子句與 EXISTS 運(yùn)算符一起使用,列出了外查詢中的 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 語(yǔ)句使用 SQL 子查詢,子查詢查找 SALARY > 65000 的帶有 AGE 字段的所有記錄,后邊的 WHERE 子句與 > 運(yùn)算符一起使用,列出了外查詢中的 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
#