当前位置:网站首页>《MySQL核心知识》第3章:MySQL中的运算符
《MySQL核心知识》第3章:MySQL中的运算符
2022-08-05 12:43:00 【冰河】
大家好,我是冰河~~
*《RPC手撸专栏》已经在 「冰河技术」 知识星球开始更新了,冰河要带你从零开始手撸一个可在实际环境使用的高性能、可扩展的RPC框架,想要一起手撸RPC的小伙伴文末有加入星球的方式。 *
今天是《MySQL核心知识》专栏的第3章,今天跟大家一起聊聊MySQL中的运算符。好了,开始今天的正题。
安全等于运算符(<=>)
这个操作符和=操作符执行相同的比较操作,不过<=>可以用来判断NULL值。
在两个操作数均为NULL时,其返回值为1而不为NULL;
而当一个操作数为NULL时,其返回值为0而不为NULL。
下面分别是 SELECT NULL <=>「1」 SELECT 「1」<=>「0」 SELECTNULL <=>NULL 的执行结果
在两个操作数均为NULL时,其返回值为1而不为NULL;
LEAST运算符
语法格式为:LEAST(值1,值2,...值n),其中值n表示参数列表中有n个值。在有两个或多个参数的情况下,返回最小值。
假如任意一个自变量为NULL,则LEAST()的返回值为NULL
使用LEAST运算符进行大小判断,SQL语句如下:
SELECT LEAST(2,0),LEAST('a','b','c'),LEAST(10,NULL)
由结果可以看到,当参数中是整数或者浮点数时,LEAST将返回其中最小的值;
当参数为字符串时,返回字母中顺序最靠前的字符;
当比较值列表中有NULL时,不能判断大小,返回值为NULL
GREATEST运算符
语法格式为:GREATEST(值1,值2,...值n),其中n表示参数列表中有n个值。
在有两个或多个参数的情况下,返回最大值。
假如任意一个自变量为NULL,则GREATEST()的返回值为NULL
使用GREATEST运算符进行大小判断,SQL语句如下:
SELECT GREATEST(2,0),GREATEST('a','b','c'),GREATEST(10,NULL)
由结果可以看到,当参数中是整数或者浮点数时,GREATEST将返回其中最大的值;
当参数为字符串时,返回字母中顺序最靠后的字符;
当比较值列表中有NULL时,不能判断大小,返回值为NULL
REGEXP 运算符
在SQLSERVER里是没有正则函数或者运算符的,MYSQL在这方面的确比较完善
用来匹配字符串,语法格式为:expr REGEXP 匹配条件,如果expr满足匹配条件,返回1;
如果不满足,则返回0;
若expr或匹配条件任意一个为NULL,则结果为NULL
常用的几种通配符:
(1)'^'匹配以该字符后面的字符开头的字符串
(2)'$'匹配以该字符后面的字符结尾的字符串
(3)'.'匹配任何一个单字符
(4)'[...]'匹配在方括号内的任何字符。例如,“[abc]" 匹配a、b或c。
字符的范围可以使用一个'-',“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字
(5)'*' 匹配零个或多个在他前面的字符。例如,“x*”匹配任何数量的'*'字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。
使用REGEXP 运算符进行字符串匹配运算,SQL语句如下:
SELECT 'ssky' REGEXP '^s','ssky' REGEXP 'y$' ,'ssky' REGEXP '.sky','ssky' REGEXP '[ab]';
由结果可以看到,指定匹配字符串为ssky。
- '^s'表示匹配任何以字母s开头的字符串,因此满足匹配条件,返回1;
- 'y$'表示匹配任何以字母y结尾的字符串,因此满足匹配条件,返回1;
- '.sky'表示匹配任何以sky结尾,字符长度为4的字符串,因此满足匹配条件,返回1;
- '^s'表示匹配任何以字母s开头的字符串,因此满足匹配条件,返回1;
- '[ab]'表示匹配任何包含字母a或者b的字符串,指定字符串中没有字母a也没有字母b,因此不满足匹配条件,返回0;
注意:正则表达式是一个可以进行复杂查询的强大工具,相对于LIKE字符串匹配,它可以使用更多的通配符类型,查询结果更加灵活
逻辑运算符
- 逻辑与运算符:AND或者&&
- 逻辑或运算符:OR或者||
- 异或运算符:XOR
当任意一个操作数为NULL时,返回值为NULL;对于非NULL的操作数,如果两个操作数都是非0值或者都是0值,则返回结果为0;
如果一个为0值,另一个为非0值,返回结果为1。使用异或运算符XOR进行逻辑判断,SQL语句如下
SELECT 1 XOR 1, 0 XOR 0,1 XOR 0,1 XOR NULL,1 XOR 1 XOR 1
由结果可以看到‘1 XOR 1’和‘0 XOR 0’中运算符两边的操作数都为非零值,或者都是零值,因此返回0;
- '1 XOR 0'中两边的操作数,一个为0值,另一个为非0值,返回结果为1;
- '1 XOR NULL'中有一个操作数为NULL,返回结果为NULL;
- '1 XOR 1 XOR 1'中有多个操作数,运算符相同,因此运算符从左到右依次计算,'1 XOR 1'的结果为0,再与1进行异或运算,因此结果为1。
注意: a XOR b的计算等同于(a AND (NOT b))或者(NOT a AND ( b))
位运算符
由于比较少用到,这里只做简单介绍
位运算符是用来对二进制字节中的位进行测试、移位或者测试处理
MYSQL中提供的位运算有
- 按位或(|)
- 按位与(&)
- 按位异或(^)
- 按位左移(<<)
- 按位右移(>>)
- 按位取反(~):反转所有比特
TIPS:可以使用BIN()=binary函数查看一个十进制数的二进制表示
例如20这个数字 SELECT BIN(「20」)
二进制表示为:10100
特别提示
某一些MYSQL中的特殊字符需要用转义字符才能插入数据库,否则产生意料之外的结果。
下面的特殊字符需要在输入时加反斜线符号开头
- 输入单引号需要:'
- 输入双引号需要:''
- 输入反斜杠:\
- 输入回车符:\r
- 输入换行符:\n
- 输入制表符:\tab
- 输入退格符:\b
在插入这些特殊字符到数据库之前一定要进行转义处理
例如插入一个单引号,加了反斜杠,插入成功
INSERT INTO table_1(NAME) VALUES('\'')
SELECT * FROM table_1
好了,今天的开篇文章就到这儿吧,如果文章对你有点帮助,记得给冰河一键三连哦,欢迎将文章转发给更多的小伙伴,冰河将不胜感激~~
边栏推荐
- 790. The cube root of a number
- 台州亿丰克瑞斯伺服驱动器调试说明
- RK3568+鸿蒙工业平板工业看板方案设计
- SharePreference与MMKV对比
- 高薪程序员&面试题精讲系列133之微服务里的网关有哪些实现方案?你熟悉Gateway网关吗?
- Trial writing C language minesweeper
- LeetCode 623 Add a line to the binary tree [BFS DFS] HERODING's LeetCode road
- What is the relationship between Kalman filter and mean filter?
- 可编程直流电源是一种稳定可靠的电源设备
- sentinel介绍和使用
猜你喜欢

二:OpenCV图片叠加逻辑运算

Translation of "Grandmaster level in StarCraft II using multi-agent reinforcement learning"

吉时利静电计在高电阻率测量解决方案应用

弱网测试(一)

RK3568+Hongmeng Industrial Flat Panel Industrial Kanban Solution Design
![[转载]卡尔曼滤波(kalman filter)和均值滤波有什么关系?](/img/9e/85cda1bbebf21af44eec93b495b428.png)
[转载]卡尔曼滤波(kalman filter)和均值滤波有什么关系?

在线问题反馈模块实战(十九):实现数据批量导出到excel文件中功能

Regular expressions in action

【Untitled】

微信商城小程序怎么弄?怎么做微信商城小程序?
随机推荐
RK3588+FPGA high-speed image processing communication processor solution
RK3568+鸿蒙工业平板工业看板方案设计
Shang Silicon Valley-JVM-Performance Monitoring and Tuning (P302~P381)
模拟实现(strncpy)(strncat)(atoi)(C语言)(VS)
松翰烧录器在keil仿真时闪退,解决方法
简单钟表动画
Food and Beverage Industry B2B Mall System: Accelerate the digital transformation of the industry and improve the transaction efficiency of the B2B platform
STM32H743IIT6 study notes 03 - using third-party components FreeRTOS
对话庄表伟:开源第一课
Small household appliance industry supply chain collaborative management system: help enterprises break through market competition and strengthen the rapid response capability of the supply chain
快可电子深交所上市:市值82亿 年营收7亿募资5.6亿
C language example - calculating the value of constant e
The Object of the method
一种3D视频格式转换(H264 MVC至SBS / OU)方案
The fourth SQL general command (DML)
solaris-磁盘管理
吉时利静电计在高电阻率测量解决方案应用
One: OpenCV image reading and writing file help documentation
Oracle Database 19c 的10大新特性一览
弱网测试(一)