SQLite Where 子句

SQLite Where 子句

SQLite Where 子句

 

 

資料來源: http://www.runoob.com/sqlite/sqlite-where-clause.html

 

 

SQLite WHERE 子句用於指定從一個表或多個表中獲取資料的條件。

如果滿足給定的條件,即為真(true)時,則從表中返回特定的值。您可以使用 WHERE 子句來過濾記錄,只獲取需要的記錄。

WHERE 子句不僅可用在 SELECT 語句中,它也可用在 UPDATEDELETE 語句中,等等,這些我們將在隨後的章節中學習到。

語法

SQLite 的帶有 WHERE 子句的 SELECT 語句的基本語法如下:

SELECT column1, column2, columnN

FROM table_name

WHERE [condition]

實例

您還可以使用比較或邏輯運算子指定條件,比如 ><=LIKENOT,等等。假設 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          RichMond   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          RichMond   65000.0

5           David       27          Texas       85000.0

下面的 SELECT 語句列出了 AGE 不為 NULL 的所有記錄,結果顯示所有的記錄,意味著沒有一個記錄的 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          RichMond   65000.0

5           David       27          Texas       85000.0

6           Kim         22          SouthHall  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          SouthHall  45000.0

下面的 SELECT 語句列出了 NAME ‘Ki’ 開始的所有記錄,‘Ki’ 之後的字元不做限制:

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB ‘Ki*’;

ID          NAME        AGE         ADDRESS     SALARY

———-  ———-  ———-  ———-  ———-

6           Kim         22          SouthHall  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          RichMond   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          SouthHall  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          RichMond   65000.0

5           David       27          Texas       85000.0

下面的 SELECT 語句使用 SQL 子查詢,子查詢查找 SALARY > 65000 的帶有 AGE 欄位的所有記錄,後邊的 WHERE 子句與 EXISTS 運算子一起使用,列出了外查詢中的 AGE 存在於子查詢返回的結果中的所有記錄:

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 大於子查詢返回的結果中的年齡的所有記錄:

sqlite> SELECT * FROM COMPANY

        WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

ID          NAME        AGE         ADDRESS     SALARY

———-  ———-  ———-  ———-  ———-

1           Paul        32          California  20000.0

 

 

 

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *