第5課 高階資料過濾

2021-10-24 19:40:16 字數 3456 閱讀 6611

第5課 高階資料過濾

1.組合where子句

前面所講的where篩選都只使用乙個條件,在實際情況中,我們往往需要對資料進行多重條件篩選,如在銷售記錄中篩選出消費金額大於1千且性別為男性的使用者。

要實現上述問題,就需要使用邏輯操作符將篩選條件組合起來。

(1)and操作符

篩選出滿足所有給定條件的資料

(2)or操作符

篩選出滿足任一給定條件的資料

(3)求值順序

當and和or組合使用時,and的優先順序要高於or。

select prod_name,prod_price

from products

where vend_id=

'dll01'

or vend_id=

'brs01'

and prod_price>=

10;

上述**實現的是:**商brs01製造的**為10美元以上的產品,以及**商dll01製造的產品。

要想實現:返回**商brs01和dll01製造的**10美元以上的產品,則需要提高or的優先順序。

提高優先順序可以使用圓括號來實現,圓括號的優先順序要大於and和or。

select prod_name,prod_price

from products

where

(vend_id=

'dll01'

or vend_id=

'brs01'

)and prod_price>=

10;

2.in操作符in操作符用來指定條件範圍,範圍內的每個條件都可以進行匹配。

select prod_name,prod_price

from products

where vend_id in

('dll01'

,'brs01'

)order

by prod_name;

滿足in操作符後括號中條件的資料都會被篩選出來

in完成的工作與or一致的

但是與or相比,in具有更多的優點:

語法更直觀、更簡潔;

求值順序更容易管理;

執行速度更快;

最大的優點是可以包含其他select語句。

3.not操作符

否定後面所跟的條件

#列出除dll01之外的所有**商製造的產品

select prod_name from products

where

not vend_id=

'dll01'

order

by prod_name;

4.課後練習(1)編寫sql語句,從vendors表中檢索**商名稱(vend_name),僅返回加利福尼亞州的**商(需要按國家[usa]和州[ca]進行過濾,沒準其他國家也存在乙個加利福尼亞州)。

select vend_name from vendors

where vend_country=

'usa'

and vend_state=

'ca'

;

(2)編寫sql語句,查詢所有至少訂購了總量100個的br01、br02或br03的訂單。你需要返回orderitems表中的訂單號(order_num)、產品id(prod_id)和數量,並按產品id和數量進行過濾。

select order_num,prod_id,quantity from orderitems

where quantity>=

100and prod_id in

('br01'

,'br02'

,'br03'

);

(3)編寫sql語句,返回所有**在3美元到6美元之間的產品名稱(prod_name)和**(prod_price)。使用and, 然後按**對結果進行排序。

select prod_name,prod_price from products

where prod_price>=

3and prod_price<=

6order

by prod_price;

(4)下面的sql語句有問題嗎?(嘗試在不執行的情況下指出。)

select vend_name from vendors

order by vend_name

where vend_country=『usa』 and vend_state=『ca』;

#order by子句應該放在where子句後面

select vend_name from vendors

where vend_country=

'usa'

and vend_state=

'ca'

order

by vend_name;

SQL第5課 高階過濾資料

用來聯結或改變wehere子句中的子句的關鍵字,也稱為邏輯操作符。乙個and兩個條件,如果有多個條件,那麼兩個條件之間加乙個and 猜猜區別 select vend id,prod price,prod name from products where vend id dll01 or vend i...

第4課 過濾資料

第4課 過濾資料 有時候只需要篩選滿足特定條件的資料,這時候就需要使用篩選條件對原始資料進行篩選。比如說我只想篩選消費金額大於500元的客戶id。1.where子句 sql中,可以使用where子句指定篩選條件 過濾條件 進行資料篩選。如 只返回prod price值為3.49的行,而不是所有行 注...

SQL(5) 高階資料過濾

select prod name,prod price from product where vend id dell01 and prod price 5000 select prod name,prod price from product where vend id del01 or vend...