欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 【mysql】逻辑运算符

【mysql】逻辑运算符

2025/11/28 21:03:18 来源:https://blog.csdn.net/qq1021091799qq/article/details/142151135  浏览:    关键词:【mysql】逻辑运算符

逻辑运算符

逻辑运算符主要是为了判断表达式的真假,返回结果也是1,0,null

OR

这里面或就是两个条件或的关系,比如我要department_id等于10和等于20的情况就可以使用或.

SELECT last_name,salary,department_id 

FROM employees

WHERE department_id=10 OR department_id=20

AND

这就是或的关系,如果我们把或改成且也就是AND,结果就没有了,因为一个人只能在一个部门里,本在两个部门中,如果要AND,我们可以做这个条件,id是20而且工资在6000以上的人.

NOT

我们还记得BETWEEN AND吗

我们要查询工资在6000和8000之间的情况.

如果想查询不在这个范围的,我们就可以直接使用NOT

SELECT employee_id,salary
FROM employees
WHERE salary NOT BETWEEN 6000 AND 8000;
#那么我们想要不在6000到8000范围内的函数怎么办呢.

之前还说过IS NULL 和IS NOT NULL,这个既可以理解为IS NOT NULL是一个整体也可以看成我们加了一个逻辑运算符NOT

还有就是我们之前说的安全等于,如何安全不等于呢?

就要使用 WHERE NOT

 

还有就是

XOR

SELECT last_name,salary,department_id
FROM employees
WHERE department_id=20 XOR salary>6000;

这个我们用的比较少,它的含义是要么20号部门小于6000,要么工资大于6000部门是20

大家要记得OR和AND,如果同时出现,我们会优先计算AND.yun

既然说到这个了,我们再说一说运算符的优先级

运算符的优先级7.51

我们这个优先级很多时候都是靠我们个人的感觉,比如有一个 and or and,你很容易就发现前后一个是一个整体,会优先计算前后,然后计算or.之后也就记下了,比如考虑是否相等,也是a=b,也是会先计算a和b然后再考虑a是否等于b,如果先判断相等之后再去后面比那肯定就不对.你看别人写的,就按照自己的直觉,你的直觉不会骗你,如果你自己写抓不准,你就用小括号,小括号一定是最先计算.

位运算符

我们使用的频率是比较低的,位运算符代表的是要把值转换为二进制,然后对它进行位运算,然后再变回十进制.

大家做一个了解就行,如果真的用上了那确实是会增加运行速度,但是我们实际上根据一个符号来优化的情况太少了,我们更多的会对SELECT进行优化.

我们会让他减少磁盘的io和是否能正确使用索引这方面来进行优化.

&|^`>><<

这里我们就举一个例子就好:

SELECT  12&5,12|5,12^5 FROM DUAL

这个的结构是4,13,9我们发现符号左右两边都是数值,这是我们这个符号的要求,是不能改变的。我们来看我们的图,这个图非常清楚

12用二进制是如何算的。与呢是什么,我们就把1当成true,0当成false,只有两个都是真才是1.

或就是只要1个是1就是1,异或就是

SELECT 10 & ~1 FROM DUAL;

~代表的就是1变成0,0变成1,&的运算就和之前一样,都是1的时候才是1。所以最后结果还是10.

运行一下也是一样

至于左移右移的意思和大家的想法也是一样的

完全拿我们表格说事就可以了.代表的含义其实就是翻倍和减半

因为二进制都往左移了一位,所以就是乘2,就像我们十进制左移一位就是乘以10一样的概念

这里就是为了大家看别人用位运算符,感觉哇高级,我也看得懂.但是我们自己就别用了,不用刻意去靠.至于另外的算术运算符,逻辑运算符比较运算符,是必须重点掌握的.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词