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

相关内容

热门资讯

透视脚本(wepOkE)透视辅... 1、透视脚本(wepOkE)透视辅助代打(wepoke辅助技巧)素来有挂(详细透视解密教程)。2、w...
透视规律!德扑之星ai代打,(... 透视规律!德扑之星ai代打,(nzt德州)其实真的是有挂(详细辅助辅助教程)德扑之星ai代打辅助器中...
透视了解(Wpk)微扑克ai辅... 透视了解(Wpk)微扑克ai辅助(透视)详细辅助黑科技教程(真是有挂)1、金币登录送、破产送、升级送...
透视最新(aapOker)aa... 透视最新(aapOker)aapoker辅助工具存在(透视)一贯真的有挂(详细辅助科技教程)亲,关键...
透视模拟器(WepOke)透视... 透视模拟器(WepOke)透视辅助安装(wepoke模拟器)原先有挂(详细透视扑克教程)1、玩家可以...
透视存在!智星德州菠萝偷偷看牌... 透视存在!智星德州菠萝偷偷看牌功能,(德州ai)一贯存在有挂(详细辅助我来教教你)1、智星德州菠萝偷...
透视科技(Wpk)wpk有辅助... 透视科技(Wpk)wpk有辅助挂(透视)详细辅助大神讲解(确实真的有挂)1、wpk有辅助挂透视辅助简...
透视科技(AAPOKeR)aa... 透视科技(AAPOKeR)aapoker发牌机制(透视)果然真的有挂(详细辅助靠谱教程)1、打开软件...
透视模拟器(wepoker)透... 您好,wepoke计算辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
透视计算!智星德州菠萝外挂,(... 透视计算!智星德州菠萝外挂,(德州ai)好像是真的有挂(详细辅助揭秘教程);1、首先打开智星德州菠萝...