MySQL学习笔记6-----SELECT的运算符们

==============【康师傅Day4】================

目录

1.算数运算符

 2.比较运算符

2.1  基础比较运算符

 2.2 其他的一些比较运算符​

 2.2.1. IS NULL \ IS NOT NULL \ ISNULL 空不空?

 2.2.2 LEAST (VALUE1,VALUE2,....) \ GREATEST(VALUE1,VALUE2,....) 最大最小

 2.2.3 BETWEEN ... AND ...查询范围内数据

 2.2.4 in ( set ) \ not in ( set ) 离散值查找

 2.2.5 LIKE 模糊查询,有就行

 2.2.6 REGEXP \ RLIKE 正则表达式

3. 逻辑运算符

 3.1 NOT \ ! 逻辑非

3.2 AND \ && 逻辑与

 3.3 OR \ || 逻辑或

 3.4 XOR 异或

4. 位运算符 

 5. 运算符优先级


1.算数运算符

加:+

减:-

乘:*

除:/ 或者 div  分母如果为0,结果是NULL

取模:% 或者 mod  结果的正负号与被模数(前面那个数)一致

   数字与字符串做运算时,会将字符串转换为数值 ,称为隐式转换

   如果字符串是abc等,不能转换成数值,则视为0处理

         在JAVA语言中,上面的执行语句会输出 ‘1001’ 的结果,是因为JAVA中的 ‘ + ’ 还有拼接字符串的作用

 2.比较运算符

        比较运算符用来对表达式左边的操作数和右边的操作数进行比较,结果为真则返回1,结果为假则返回0,其他情况返回NULL。

        比较运算符常被用作SELECT查询语句的条件,返回符合条件的结果记录。

2.1  基础比较运算符

 1.比较运算符也存在隐式转换的问题,例如最后个0=‘a’,输出为真

2.  如果两个都是字符,则会进行正经的字符串间的比较(不区分大小写),原则是比较每个字符的ASC码:

3. 只要有NULL参与,结果就是NULL

4. <=> 安全等于在没有NULL参与的时候,与=完全一致,唯一的区别在于:当两个比较数都是NULL时,返回值为1;当一个为NULL,一个不为NULL时,返回0,返回值不会为NULL。

 并且此时可以用NULL进行WHERE查询。理解为此时的NULL都为一个相同的不知道的数

 2.2 其他的一些比较运算符

 2.2.1. IS NULL \ IS NOT NULL \ ISNULL 空不空?

        IS NULL ,等价于在安全查询时使用<=>NULL进行查询的效果

                          等价于 WHERE ISNULL(  )

         IS NOT NULL,与 IS NULL效果正相反,用来查询非NULL的行

 2.2.2 LEAST (VALUE1,VALUE2,....) \ GREATEST(VALUE1,VALUE2,....) 最大最小

        选出最大最小的值,字符串按字典序进行比较

 2.2.3 BETWEEN ... AND ...查询范围内数据

        注意,包含范围端点数据

 2.2.4 in ( set ) \ not in ( set ) 离散值查找

 2.2.5 LIKE 模糊查询,有就行

        查询 last_name 中包含字符 ‘ a ’ 的员工信息

        注意,如果直接像下面这么查,效果就和 = 一样了,是错误的!

        % 代表不确定个数的字符,% x % 就是说x的前面和后面都可以有0个或多个字符

        当我们的需求是只要有 a 就行,就在前后都加上 % ;如果只想让 a 为开头,则只在后面加%,以此类推:

        当我们需要第二个字符为a的数据时,用 “ ” ,一个 “ _ ” 代表一个不确定的字符

         当我们想查询的某个字符是下划线的时候,需要使用转义字符 “ \。如下面我们想查询的是job_id中第三个字符是下划线的数据。

如果想同时查询多种条件,有两种方法:

        法1: 用 AND 连接两个完整的需求,不可以偷懒写 WHERE  salary LIKE  '%6%'  AND  '%8%'

         法2: 用 OR 连接两个需求,因为前后顺序是固定的,所以记得要把排列组合都考虑到

 2.2.6 REGEXP \ RLIKE 正则表达式

        一些非常精确的表达式,语法比较复杂,这里就不整理了。详情看下面这个两个博客~

正则表达式全解析+常用示例_墨遥的博客-CSDN博客_正则表达式例子详解在开始写这篇文章之前,我的心里还是纠结的。我在问自己要不要写这篇东西,关于相似的内容网上多如牛毛,而且还不乏珍品,况且,就算我写了也不一定能写的好。但是现在你既然看到了,那说明我还是写了出来。就算是对自己学习的一个总结吧!同时也把常见的常用的正则表达式给收集整理出来,以便用到的时候不用满世界的找。关于正则表达式一直都是个让很多程序员都觉得很郁闷的一个东西,我觉得创造正则表达式的那个家伙简直就是https://blog.csdn.net/xuemoyao/article/details/8033138?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165093202716782184652694%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165093202716782184652694&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-8033138.142%5Ev9%5Epc_search_result_control_group,157%5Ev4%5Econtrol&utm_term=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&spm=1018.2226.3001.4187常用正则表达式合集,这一篇就够了!!(含完整案例,建议收藏)_冰 河的博客-CSDN博客_正则表达式例子大全正是掌握了这些正则表达式,冰河平均每天比别人少写200行代码,极大的提高了研发效率,有了很多摸鱼的时间!!https://blog.csdn.net/l1028386804/article/details/116778918?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165093202716782184652694%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165093202716782184652694&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-116778918.142%5Ev9%5Epc_search_result_control_group,157%5Ev4%5Econtrol&utm_term=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&spm=1018.2226.3001.4187

3. 逻辑运算符

逻辑运算符用来判断表达式的真假,在MySQL中,逻辑运算符的返回结果为1、0或者NULL。

MySQL支持以下四种运算符:

 3.1 NOT \ ! 逻辑非

3.2 AND \ && 逻辑与

        需要同时满足 AND 前后的条件的数据

 3.3 OR \ || 逻辑或

前后条件满足一条即可

AND 和 OR 可以一起并排使用,但是 AND 的优先级高于 OR 

(1)AND(2)OR(3)AND(4),是先分别算出1,2和3,4的AND,在把两块取OR

 3.4 XOR 异或

WHERE 条件1  XOR  条件2 ; # 要么满足条件1且不满足条件2,要么满足条件2且不满足条件1

用的不太多

4. 位运算符 

位运算符会先将操作数编程二进制数,然后进行位运算,最后再将结果从二进制变回十进制。实践中应用很低

位运算符如下:

 原理就是二进制中的按位取,见下图:

 5. 运算符优先级

        越往下优先级越高,优先级高的运算符会先进行计算。自己写的时候就是遇事不决加括号


                                                      第四章完结撒花~                                                             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值