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

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...