MySQL运算符
创始人
2024-12-27 01:07:53
0次

运算符

前言

运算符章节和上篇文章中的WHERE过滤配套使用,利用这些和WHERE的配合,查询出自己想要的数据!

1.算术运算符

  • 包括 +(加), -(减), *(乘), /(除) 和 %(取模)
运算符名称作用示例
+加法运算符计算两个表达式或变量的和SELECT A + B
-减法运算符计算两个表达式或变量的差SELECT A - B
*乘法运算符计算两个表达式或变量的乘积SELECT A * B
/除法运算符计算两个表达式或变量的商SELECT A / B
%取模运算符计算两个表达式或变量的余数SELECT A % B
  • 加法与减法运算符

一个整数类型的值对整数进行加法和减法操作,结果还是一个整数;

一个整数类型的值对浮点数进行加法和剑法操作,结果还是一个浮点数;

加法和减法的优先级相同,进行先加后减操作与进行先减后加操作的结果是一样的;

在Java中,+的左右两边如果有字符串,那么表示字符串的拼接,但是MySQL中加号只表示数值的相加,如果想在MySQL中实现字符串拼接,可以用函数**CONCAT()**实现;

  • 乘法与除法运算符

一个数乘以一个整数1和除以一个整数1后仍得到原数。

一个数乘以浮点数1和除以浮点数1后变成浮点数,数值与原数相等;

一个数除以整数后,不管能否除尽,结果都为一个浮点数;

一个数除以另一个数,除不尽时,结果为一个浮点数,并保留到小数点后4位。

乘法和除法优先级相同,先乘后除和先除后乘结果相同。

在数学运算中,0不能做除数,在MySQL中,一个数除以0为NULL;

  • 取模运算符

没啥说的,记住要取逆模,比如-11 % 2,MySQL算下来结果是-1,但是正确结果应该是(n % m + m) % m;(这就是取逆模,想深入了解可以看看别的文章)。

2.比较运算符

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

1.等号与安全等于运算符

  • 等号运算符 = 判断等号两边的值,字符串或表达式是否相等,如果相等则返回1,不相等则返回0.
  • 在使用等号运算符时,遵循如下规则:
    • 如果等号两边的值,字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的时每个字符串的每个字符的ANSII码是否相等
    • 如果两边的值都为整数,则比较两个数的值是否相等。
    • 如果一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
    • 如果等号两边的值,字符串或表达式有一个为NULL,则比较结果就会是NULL。
      • 在这里面就会有一个**<=>,这个叫做安全等于运算符,不用这个的话NULL = NULL返回值是NULL**,NULL <=> NULL返回值是真。
    • 安全等于运算符和等号的作用差不多,但判断NULL时更安全。

2.不等于运算符

  • !=运算符用于判断两边的数字,字符串,表达式的值相不相等,若不相等返回1,相等返回0,但是如果!=两边有NULL ,结果就为NULL;

还有很多其他的运算符

运算符名称作用示例
IS NOT NULL不为空运算符判断值,字符串或表达式是否不为NULLSELECT B FROM TABLE WHERE A IS NOT NULL
LEAST最小值运算符在多个值中返回最小值SELECT D FROM TABLE WHERE C LEAST(A, B)
GREATEST最大值运算符在多个值中返回最大值SELECT D FROM TABLE WHERE C GREATEST(A, B)
BETWEEN AND两值之间的运算符判断一个值在不在这个范围内SELECT D FROM TABLE WHERE C BETWEEN A AND B
IS NULL为空运算符判断一个值,字符串,或表达式是否为空SELECT B FROM TABLE WHERE A IS NULL
IN属于运算符判断一个值是否为列表中的任何一个值SELECT D FROM TABLE WHERE C IN (A, B)
NOT IN不属于运算符判断出一个值不在这个列表中SELECT D FROM TABLE WHERE C NOT IN (A, B)
LIKE模糊匹配运算符判断一个值是否符合模糊匹配规则SELECT C FROM TABLE WHERE A LIKE B
REGEXP正则表达式运算符判断一个值是否符合正则表达式的规则SELECT C FROM TABLE WHERE A REGEXP B
RLIKE正则表达式运算符判断一个值是否符合正则表达式的规则SELECT C FROM TABLE WHERE A RLIKE B

对于上面表格中的运算符,用法和作用就是表格中的内容,其中有几点注意,LEAST, GREAST, IN, NOT IN其中可以放很多个数据,不是只能放两个,如果LEAST 或GREAST包含NULL的话,返回值也是NULL; IN 和 NOT IN如果IN中包含NULL的话不影响,但是要查询的数据是NULL的话,那么就会返回NULL。
LIKE也是如果给定值或条件是NULL的话,返回结果为NULL。

小拓展

  • 如果不想使用 \ 作为转义字符,可以使用ESCAPE来改变。
  • 回避特殊符号
SELECT job_id FROM jobs WHERE job_id like 'IT\_%'; 
  • 把要转义的字符用ESCAPE修饰
SELECT job_id FROM jobs WHERE job_id LIKE 'IT$_%' ESCAPE '$'; 

3.逻辑运算符

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

MySQL中支持4种逻辑运算符如下:

运算符作用示例
NOT 或 !逻辑非SELECT NOT A
AND 或 &&逻辑与SELECT A AND B
OR 或 ||逻辑或SELECT A OR B
XOR逻辑异或SELECT A XOR B

1.逻辑非运算符
逻辑非运算符表示当给定的值为FALSE时,返回TRUE,当给定的值为TRUE时返回FALSE,当给定值为NULL时,返回NULL。

2.逻辑与运算符
逻辑与运算符时当给定的所有值均为非0值,并且都不为NULL时,返回TRUE,当给定的一个值或多个值为FALSE时则返回FALSE,否则返回NULL。

3.逻辑或运算符
逻辑或运算符时当给定的所有值,如果有TRUE,就为TRUE(和NULL没关系),如果没TRUE,有NULL就NULL,没NULL就FALSE

4.逻辑异或运算符
逻辑异或运算符时当给定有一个为NULL时,返回NULL,如果两个非NULL值都是FALSE或都是TRUE,则返回FALSE,如果一个是FALSE,一个是TRUE,则返回是TRUE;

4.位运算符

4.1 介绍一下位运算

位运算是二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制。

MYSQL支持的位运算符如下

运算符作用示例
&两个都是1,计算后才是1,否则计算后为0SELECT A & B
|两个里面有一个是1,就是1,否则计算后为0SELECT A | B
^两个位不同才是1,相同是0SELECT A ^ B
~如果这个数这一位是1,变成0,反之变成1SELECT ~A
>>按位右移,例如(二进制)1100 >> 1 为 110SELECT A >> 1
<<按位左移,例如 (二进制)1100 << 1 为 11000SELECT B << 2

相关内容

热门资讯

实操分享开挂脚本!德扑圈多功能... 实操分享开挂脚本!德扑圈多功能开挂脚本,德扑圈好像存在有开挂脚本1、打开软件启动之后找到中间准星的标...
如何分辨真伪透视器工具!WeP... 如何分辨真伪透视器工具!WePoKer多功能透视器工具,WePoKer切实是真的有透视器工具1、下载...
一分钟揭秘作弊器脚本!红龙po... 一分钟揭秘作弊器脚本!红龙poker多功能作弊器脚本,红龙poker一直真的是有作弊器脚本1、实时红...
一起来讨论作弊器脚本!德扑之星... 一起来讨论作弊器脚本!德扑之星多功能作弊器脚本,德扑之星本来有作弊器脚本德扑之星破解侠是真的助透视。...
免费测试版外挂软件!WPK多功... 免费测试版外挂软件!WPK多功能外挂软件,WPK好像有外挂软件1、金币登录送、破产送、升级送、活动送...
分享开挂内幕作弊器插件!德普之... 分享开挂内幕作弊器插件!德普之星多功能作弊器插件,德普之星一直真的是有作弊器插件1、德普之星公共底牌...
总算了解开挂教程!德扑之星多功... 总算了解开挂教程!德扑之星多功能开挂教程,德扑之星确实存在有开挂教程1、超多福利:超高返利,海量正版...
实测揭晓辅助技巧!智星德州扑克... 实测揭晓辅助技巧!智星德州扑克多功能辅助技巧,智星德州扑克本来真的有辅助技巧1、智星德州扑克模拟器是...
玩家必看科普辅助教程!wpk多... 玩家必看科普辅助教程!wpk多功能辅助教程,wpk都是是真的有辅助教程1、操作简单,无需wpk手机版...
玩家必看科普透视挂app!AA... 玩家必看科普透视挂app!AAPoKer多功能透视挂app,AAPoKer一贯真的是有透视挂appA...