【mysql】逻辑运算符

news/2024/11/13 7:12:49/

逻辑运算符

逻辑运算符主要是为了判断表达式的真假,返回结果也是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一样的概念

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


http://www.ppmy.cn/news/1528110.html

相关文章

C++速通LeetCode简单第18题-杨辉三角(全网唯一递归法)

全网唯一递归法&#xff1a; vector<vector<int>> generate(int numRows) {vector<int> v;vector<vector<int>>vn;if (numRows 1){v.push_back(1);vn.push_back(v);v.clear();return vn;//递归记得return}if (numRows 2){v.push_back(1);vn.p…

使用BGP及静态路由方式实现链路冗余和ByPass

总体目标 场景:交换机A同时连接交换机B和C,数据优先通过A-B链路,若A-B链路出现故障,则自动切换到A-C链路。实现:使用BGP来控制路由优先级,并通过BFD来快速检测链路故障。//实际应用中B可以是一个安全检测设备,比如IPS、WAF之类,也可以是一个VPN设备。 这样正常情况下流…

裸土覆盖检测算法、裸土识别检测算法、裸土检测算法

裸土检测算法是一种基于计算机视觉和图像处理技术&#xff0c;用于自动识别和评估裸露土壤区域的智能工具。以下是对裸土检测算法的详细介绍&#xff1a; 1. 技术原理 - 数据采集与预处理&#xff1a;利用卫星、无人机或传感器收集地面图像数据&#xff0c;并进行必要的预处理…

物联网设备为何成为黑客攻击的目标

随着物联网&#xff08;Internet of Things, IoT&#xff09;技术的发展&#xff0c;越来越多的智能设备被引入日常生活和工业生产中。然而&#xff0c;由于设计和安全措施的不足&#xff0c;物联网设备常常成为黑客攻击的目标。本文将探讨物联网设备易受攻击的原因及其背后的安…

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发布 ESXi 8.0U3 集成驱动版&#xff0c;在个人电脑上运行企业级工作负载 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-8-u3-sysin/&#xff0c;查看最新版…

写论文网站哪个最专业?分享7款必备论文ai写作网站

在当今学术研究和写作领域&#xff0c;AI论文写作工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿&#xff0c;还能进行内容优化、查重和排版等操作。以下是7款必备的AI论文写作网站&#xff0c;其中特别推荐千笔-AIPassPaper。 一、千笔…

TPDO触发条件如何满足?

在上一期中&#xff0c;我们了解到TPDO&#xff08;传输过程数据对象&#xff09;的传输类型有很多种&#xff1a;同步周期性传输、RTR&#xff08;远程传输请求&#xff09;以及异步制造商特定事件等。这些类型的触发条件主要分为三种&#xff1a;同步&#xff08;SYNC&#x…

中国火锅变局:从群雄逐鹿到双雄角逐

中国火锅&#xff0c;正在进入新的变局。 前不久&#xff0c;沙利文发布的《2024年中国火锅行业发展白皮书》&#xff0c;揭示出中国火锅新的市场变化和竞争格局。 首先在品类上&#xff0c;川渝火锅的市场份额高达66%&#xff0c;远超排在后面的北派火锅和粤式火锅。 在川渝…