1. 程式人生 > 其它 >SQL--使用WHERE子句過濾檢索資料

SQL--使用WHERE子句過濾檢索資料

3、過濾資料
search criteria搜尋條件 filter condition過濾條件
使用WHERE 子句---
where子句操作符
不等於<> / != #不是所有的DBMS都支援這兩種操作符,通常他們倆可以互換
不小於!<
小於等於<=
小於<
在兩者數值之間 BETWEEN
為NULL值 IS NULL
並非所有DBMS都支援這些操作符,且有些操作符重複意思
3.1、檢查單個值:
SELECT prod_name, prod_price
FROM Products
WHERE prod_price<10; #檢索出價格低於10的產品名字
3.2、不匹配檢查----過濾不包含某值的資料,這種過濾不能返回NULL值
SELECT vend_id, prod_name
FROM Products
WHERE vend_id<>'DLL01'; #檢索出不是DLL01供應商的產品
#使用引號限定字串型別值
3.3 範圍性檢查------BETWEEN
SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10; #檢索價格在5-10之間的產品,指定開始值與結束值,使用AND關鍵字分隔
3.4空值檢查----IS NULL #NULL不僅僅等於值為0、空字串、包含空格
SELECT prod_name, prod_price
FROM Products
WHERE prod_price IS NULL; #返回價格欄位列為空的產品,若無則不返回資料
練習:
SELECT prod_id, prod_name
FROM Products
WHERE prod_price =9.49;

SELECT prod_id, prod_name
FROM Products
WHERE prod_price >=9.49;

SELECT distinct order_num
FROM Orderltems
WHERE order_num>=100;

SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 3 AND 6
ORDER BY prod_price DESC;

4、操作符operator--用來聯結或改變WHERE子句中的子句的關鍵字,也叫邏輯操作符
4.1、組合使用WHERE子句
AND 條件都要滿足
OR 滿足任一條件即可
**AND 與OR 關鍵字的優先順序
在WHERE 子句中同時使用AND 與OR需要使用'( )'區分優先順序
( ) > AND>OR
例:SELECT prod_name, prod_price
FROM Products
WHERE (vend_id='DELL01' OR vend_id='BRS01'

) AND prod_price >=10; #檢索出供應商為DELL01與BRS01且價格高於10的產品
4.2、IN操作符
用於指定條件範圍,與OR關鍵字作用相當,由逗號分隔、括在圓括號中的合法值
例:SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ('DLL01','BRS01'); #檢索供應商為這兩個的產品
優點:可以包含其他SELECT語句,更動態地建立WHERE子句
4.3、NOT 操作符
用於否定其後所跟的所有條件,相當於'<>'的作用
例:SELECT prod_name, prod_price
FROM Products
WHERE NOT vend_id='DLL01'; #檢索不是DLL01的產品
大多數DBMS允許使用NOT否定任何條件,MariaDB支援使用NOT否定IN、BETWEEN和EXISTS子句
練習:
SELECT vend_name
FROM Vendors
WHERE vend_country ='USA' AND vend_state='CA';

SELECT order_num, prod_id, quantity
FROM Orderltems
WHERE vend_id IN ('BR01', 'BR02','BR03') AND quantity >=100;
或者 WHERE (prod_id ='BR01'OR prod_id ='BR02' OR prod_id ='BR03') AND quantity>=100;
不可以 WHERE (prod_id='BR01' OR 'BR02' OR 'BR03')
SELECT prod_name, prod_price
FROM Products
WHERE prod_price>=3 AND prod_price<=6
ORDER BY prod_price;

ORDER BY子句應為最後一條子句