暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第8讲:MySQL算术运算符、比较运算符

何先振 2023-08-17
180

以下文章来源于何先振,责编小何


算术运算符



算术运算符包括:+、-、*、/或者div、%或者mod





在SQL中,+没有连接作用,只表示加法运算。


加字符时,会将数字字符串做隐式转换。





如果不是数字的字符,默认为0





如果跟null值做运算,结果都是null值





乘除运算


如果分母为0的话,结果为null





除法不管除不除的断,得到的值都是浮点类型





取模运算 % 或者mod,前面的被取模数为正数,就是正数。被取模数伟负数,就是负数。





练习,筛选出id为偶数的员工





比较运算符



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


= 等于、安全等于<=>、<>、!=、<、<=、>、>=


字符和数字比较,隐式转换不成功,就会默认为0





两边都是字符的情况下,则按照ANST的比较规则进行比较。





只要有null参与判断的,结果就为null





表达式使用在where条件中





此时执行不会有任何结果,因为where过滤,会拿表中每行对应字段的值做比较,如果为1就显示,因为有null值参与运算就都是null,因此不会有结果。





安全等于<=> ,可以用来比较null值。





通过<=> 查出奖金率为null的员工





is null、is not null、isnull


is null和安全等于<=> 用法相同





也可以使用isnull()函数,查出是null的





is not null查出不是null的





<=>安全等于和not关键字,配合查出不是null的





LEAST()最小、GREATEST最大


求最大最小





返回两列中最小和最大的列的值





返回两列中最小和最大的列的值





BETWEEN 条件1 AND 条件2 


查询条件1和条件2范围内的数据 包括条件本身。


查找员工工资在6000到8000区间范围内的员工





注意,条件1为下界,条件2为上界,颠倒就查不出数据





除了使用BETWEEN AND 还可以使用逻辑运算符&& 实现





也可以通过not 配合BETWEEN查询工资不在6000到8000的员工





也可以使用逻辑运算符or,查询工资不在6000到8000的员工





in(set) 、not in(set) ,set为集合


查询部门为10,20,30部门的员工信息





查询不为10,20,30部门的员工信息





LIKE 模糊查询,需要配合%分号实现


%分号代表不确定个数的字符(0个、1个、或多个)


查询名字包含a的员工





查询名字开头是a的员工





查询名字同时包含a和e的员工

写法1:使用and





写法2,使用%包含a和e





_下划线代表一个不确定的字符


查询名字中第二个字符包含a的员工





如果不需要表示_下划线,可以使用转意字符\


查询名字中第二字符为_下划线的员工





ESCAPE 转意符号,自定义转意符


查询名字中第二字符为_下划线的员工,转意符自定义





正则表达式PEGEXP、PLIKE


正则表达式的规则,简单举例,具体的可以看正则表达式相关的知识内容。





通过正则表达式,找到名字开头包含a的





通过正则表达式,找到名字结尾包含n的









点击上方"何先振"关注并选择设为星标
各类IT技术文章不会错过!

文章转载自何先振,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论