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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值