1. 程式人生 > >SQL之過濾數據(where子句)

SQL之過濾數據(where子句)

display mail 數據 custom 空值 spl false products 之間

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子句操作符

技術分享圖片

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

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;

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

SQL之過濾數據(where子句)