SQL之過濾數據(where子句)


1.使用基礎where子句

select prod_id,prod_price
from Products
where prod_price = 3.49;

檢索products表中兩個列,只返回prod_price值等於3.49的行。

注意:由於數據庫軟件的指定。結果可能是3.490,3.4900。

2.where子句操作符

image

注意:並非所有數據庫軟件都支持所有操作符。

2.1具體例子:

價格小於10的產品:

select prod_name, prod_price
from Products
where prod_price < 10;

id不是DLL01項:

select vent_id,prod_name
from Products
where vent_id <> 'DILL01';

select vent_id,prod_name
from Products
where vent_id != 'DILL01';

價格在5和10之間的所有產品:

select prod_name, prod_price
from Products
where prod_price between 5 and 10 ;

空值(null)

select cust_name
from Customers
where cust_email IS NULL;

3.組合where子句

AND操作符

select prod_id,prod_price,prod_name
from Products
where prod_id = 'DLL01' and prod_price <=4;

同時滿足prod_id等於DLL01和prod_price小於等於4。

OR操作符

select prod_id,prod_price,prod_name
from Products
where prod_id = 'DLL01' or prod_price <=4;

相對於and操作符,只要滿足其中一條就可以。

為了消滅歧義,在組合where子句中使用圓括號。如下兩個語句有着截然不同的意思:

select prod_id,prod_price,prod_name
from Products
where (prod_id = 'DLL01' or prod_id = 'BRS01')
       and prod_price >= 10;

首先會過濾括號內的條件

select prod_id,prod_price,prod_name
from Products
where prod_id = 'DLL01' or prod_id = 'BRS01'
       and prod_price >= 10;

由於SQL語言優先處理AND操作符,所以結果就變成滿足prod_id='DLL01’或者prod_id=‘BRS01’+ prod_price>=10

IN操作符

select prod_id,prod_price,prod_name
from Products
where vend_id IN ('DLL01', 'BRS01')
order by prod_name;

NOT操作符

select prod_id,prod_price,prod_name
from Products
where not vent_id = 'DLL01'
order by prod_name;

也可以用<>,!=操作符,具體的看數據庫軟件的設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM