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中 真>不确定>假