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 ai代打(有挂教程)-哔哩哔哩是一款可以让一直...
【Python】Linux下载... 1. 从Python官网下载源代码首先,你需要从Python的官方网站(...
5瞬间秒懂!(咪咪扑克)外挂辅... 5瞬间秒懂!(咪咪扑克)外挂辅助器插件!(透视)详细教程(2024已更新)(哔哩哔哩)是一款可以让一...
第1实锤!微扑克软件外挂透明挂... 第1实锤!微扑克软件外挂透明挂辅助器脚本,微扑克有脚本的(有挂教程)-哔哩哔哩是一款可以让一直输的玩...
Python 基于pytorc... 1.Multiheads-Self-Attentiona简介多头自注意力机制(Mult...
Python爬虫完整代码拿走不... 对于新手做Python爬虫来说是有点难处的,前期练习的时候可以直接套用模板࿰...
【Origin+Python】... 目录基本介绍环境配置官方代码示例基础代码详解我的代码效果视频进阶代码及去水印基本介绍origin20...
4分钟了解!(大宝苏北麻将)外... 4分钟了解!(大宝苏北麻将)外挂透明挂辅助透视挂!(透视)详细教程(2023已更新)(哔哩哔哩);大...
基于Python给出的PDF文... 注:网上有很多将Markdown文档转为PDF文档的方法,但是却很少有将...
第七了解!菠萝德州app外挂辅... 第七了解!菠萝德州app外挂辅助器作弊,wpk微扑克真的有辅助插件的(有挂透明挂)-哔哩哔哩;1、这...