==============【康师傅Day4】================
目录
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 ) 离散值查找
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. 运算符优先级
越往下优先级越高,优先级高的运算符会先进行计算。自己写的时候就是遇事不决加括号
第四章完结撒花~