逻辑比较(AND、OR、NOT)

本文介绍在SQL查询中如何使用逻辑运算子AND、OR和NOT来组合多个检索条件。详细解释了这些运算子的优先级及如何通过括号改变处理顺序,并提供了具体的SQL查询示例。
在WHERE句中 指定 多个条件的 场合,使用 以下的 逻辑演算子。

[table]
|AND|所指定的 检索条件 无论哪个都 满足的 场合
|OR|所指定的 检索条件的 之一 被满足的 场合
|NOT|不满足 所指定的 检索条件的 场合
[/table]

使用 多个 这些 逻辑演算子的 时候,被 处理的 优先顺序 是 NOT、 AND、 OR。
优先顺序 通过 使用 () 可以 变更。以( ) 括起来的 条件 被 优先 处理。
例1)检索 1000<=列[salary]<=以外的 记录
select * 
  from employees
 where
   not( salary between 1000 and 2000 )

例2)首先 处理 OR条件
select * 
  from employees
 where
    job_id = 'JOB001'
  and ( department_id = 'D30' or department_id = 'D50' )
Python语言支持逻辑运算符,包括andornot,以下是它们的使用方法和原理: ### and运算符 - **使用方法**:用于布尔“与”运算,语法为`x and y`。在带有`and`的`if`判断中,只要有一个关系式为`False`,整个表达式就是`False`。例如,假设变量`a`为10,`b`为20,`(a and b)`返回20 [^1][^5]。 - **原理**:使用`and`时,从左到右进行逻辑运算。一旦遇到`bool`逻辑为`False`的值,则立刻返回该值且不再往后运算;否则,所有元素的`bool`逻辑值均为`True`,`and`将返回最后一个值。例如`1 and 2 and 0 and 3 and 5 and 4`返回0,因为在运算到0时,发现其布尔值为`False`,所以直接返回0;而`1 and 2 and 3 and 4 and 5`返回5,因为所有元素布尔值都为`True`,所以返回最后一个值 [^3][^4]。 ### or运算符 - **使用方法**:用于布尔“或”运算,语法为`x or y`。如果`x`是非0,它返回`x`的值,否则它返回`y`的计算值。例如,`(a or b)`返回10 [^1]。 - **原理**:从左到右进行逻辑运算,前面为真(非0或者非`False`)则表达式为前面的值,否则表达式为后面的值。例如`1 or False`返回1,因为1的布尔值为`True`,所以直接返回1;而`0 or 0`返回0,因为第一个值0的布尔值为`False`,所以继续运算并返回第二个值 [^2]。 ### not运算符 - **使用方法**:用于布尔“非”运算,语法为`not x`。如果`x`为`True`,返回`False`;如果`x`为`False`,它返回`True`。例如,`not(a and b)`返回`False` [^1]。 - **原理**:对操作数的布尔值取反,即真变假,假变真。 ### 优先级 逻辑运算符的优先级为:`not > and > or`。例如`1 and 0 or not False`返回`True`,先计算`1 and 0`得0,再计算`not False`得`True`,最后计算`0 or True`得`True` [^2]。 以下是一些示例代码: ```python a = 10 b = 20 # and 运算符示例 print(a and b) # 输出 20 print(0 and 1) # 输出 0 # or 运算符示例 print(a or b) # 输出 10 print(0 or 0) # 输出 0 # not 运算符示例 print(not(a and b)) # 输出 False print(not False) # 输出 True # 优先级示例 print(1 and 0 or not False) # 输出 True ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值