SQL之過濾數據(where子句)
阿新 • • 發佈:2019-02-05
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子句)