sql serve2008邏輯運算符

01NOT運算符
在sql語句中not表示否定,意爲非
不能單獨使用需要與其他條件配合
例一查詢售價小於1000元的商品
法一:

SELECT product_name,product_id
FROM PRODUCT
WHERE NOT sale_price >= 1000
--NOT用在條件前,否定的是整個條件

執行
在這裏插入圖片描述
法二:

SELECT product_name,product_id
FROM PRODUCT
WHERE  sale_price < 1000
--大於等於的逆命題<
--相比於not這樣更爲方便

執行在這裏插入代碼片
在這裏插入圖片描述
小結:not用來否定某一條件但是不能濫用

02and和or運算符
and用於兩側條件均成立
or用於兩側條件有一個成立
例二查詢售價爲500的辦公用品或者廚具

SELECT product_name,product_id,sale_price
FROM  PRODUCT
WHERE sale_purse = 500
AND product_type='辦公用品'
OR  product_type ='廚具'

執行
在這裏插入圖片描述
這個結果並不是我們想要的,這是什麼原因呢?
在sql語言中and優先級高於or
也就是說會先執行
sale_purse = 500 AND product_type='辦公用品 語句
再執行
OR product_type =‘廚具’

如何優化達到我們想要的結果呢?

SELECT product_name,product_id,sale_price
FROM  PRODUCT
WHERE sale_purse = 500
AND( product_type='辦公用品'
OR  product_type ='廚具'--括號會改變運算優先級

執行
在這裏插入圖片描述
03邏輯運算符與真值
所謂真值就是滿足條件時判定爲真,不滿足條件判斷爲假
比如滿足sale_pric>500爲True,否則爲False
在這裏插入圖片描述
通過上表可以發現,and連接的條件全爲真時結果爲真
or連接的條件兩個條件之一爲真結果爲真,反之爲假

想想看如果含有null會怎樣呢?
除了真假值之外還有一種結果就是不確定
比如我們之前提到菜刀的purchase_price的值爲null,不能說結果爲真,也不能說結果爲假。
與null對應的就是不確定。
在這裏插入圖片描述
通過真值表我們可以發現
不確定 and 真=不確定
不確定 and 假 =假
真 or 不確定 = 真
假 or 不確定 = 不確定
真 or 假 = 真

爲了便於記憶這個特殊用法,我們引入優先>來進行總結
and 中 假>不確定>真
or中 真>不確定>假

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章