前言:
💂作者简介:大家好,我是翼同学!
📃个人主页:翼同学的CSDN博客
🔥系列专栏:【MySQL从入门到精通】---- 持续更新
👏备注:如果文章有误,请指正,万分感谢!让我们一起学习,一起进步。
✅最后:如果文章对您有帮助,请👍三连支持一下博主哦。🤞
目录
1️⃣前言
- 数据库中的表结构一旦建立后,表中的数据就有了意义
- 通过MySQL运算符进行运算,我们可以获得表结构以外的另一种数据
而在MySQL中,运算符有四种:
- 算术运算符
- 比较运算符
- 逻辑运算符
- 位运算符
下面,我们就来看看各种运算符的特点!
2️⃣算术运算符
✔️表格
下面表格列举了所有算术运算符:
符号含义
+
加法
-
减法
*
乘法
/
或
DIV
除法
%
或
MOD
取余
✨备注:
+
用于获得一个或多个值的和-
用于一个值减去另一个值*
用于得到两个或多个值的乘积/
用一个值除以另一个值得到商%
用于一个值除以另一个值得到余数
💡举例
- 需要注意的是,当除数为0时 ,将视为非法除数,其返回值为 NULL。
如图:
3️⃣比较运算符
✔️表格
下面表格列举了所有比较运算符:
符号含义
=
等于
<=>
当两个操作数均为NULL时,返回1
<>
或
!=
不等于
<
小于
<=
小于等于
>
大于
>=
大于等于
IS NULL
是否为NULL
IS NOT NULL
是否不为NULL
BETWEEN AND
区间,在两值之间
IN
判断值是否在列表中
NOT IN
判断值是否不在列表中
LIKE
通配符匹配
REGEXP
正则表达式匹配
✨备注:
MySQL
允许用户对表达式的两侧的操作数进行比较- 如果比较的结果为真,则返回
1
- 结果为假则返回
0
- 如果比较结果不确定,则返回
NULL
NULL
不能用于比较,会直接返回NULL
💡举例
🌱例子1:
=
号运算符----用于判断运算符两侧的操作数是否相等
🌱例子2:
<=>
运算符----**和
=
运算符类似**,不同在于
<=>
运算符可以**比较
NULL
值**
🌱例子3:
<>
运算符或
!
运算符----是否不相等
🌱例子4:
<
运算符----当左侧操作数小于右侧操作数时,返回值为
1
, 否则返回
0
。
类似的,
<=
,
>
,
>=
等运算符的用法也是这样
🌱例子5:
IS NULL
和
IS NOT NULL
分别表示是否为 NULL,是否不为NULL
- 如果为NULL,则返回1,否则返回0
🌱例子6:
BETWEEN AND
的语法是:
select a between l and r ;
这就相当于判断
a
是否在区间
[l , r]
,是就返回1,否则返回0.
🌱例子7:
IN
符号----用于判断某值是否在一个列表中
- 语法为:
value in (value1,value2,value3);
NOT IN
的用法上述
IN
的用法类似。
🌱例子8:
LIKE
符号----用于模糊匹配,其语法大致为:
xxx like 'xx%'
- 如果相似,就返回1,否则返回0
🌱例子9:
REGEXP
符号----用于正则表达式匹配,语法为:
str1 regexp str2;
- 如果匹配则返回1,否则返回0
4️⃣逻辑运算符
- 逻辑运算符指的就是布尔运算符,判断真或假
✔️表格
下面表格列举了所有逻辑运算符:
符号含义
!
或
NOT
逻辑非(真变假,假变真)
&&
或
AND
逻辑与(所有条件满足时才为真)
||
或
OR
逻辑或(有一个条件为真就是真)
XOR
逻辑异或(不同为真,相同为假)
✨备注:
需要注意的是:
NOT NULL
的返回值为NULL
💡举例
🌱例子1:
NOT
和!
表示逻辑非
当操作数为
0
(假) ,则返回
1
,否则返回
0
。
🌱例子2:
AND
和&&
表示逻辑与
当所有操作数不为
0
并且不为
NULL
时,则返回
1
反之,只要有一个操作数为
0
,就返回
0
如果操作数没有0,但有一个操作数为
null
,就返回
null
。
🌱例子3:
OR
和||
表示逻辑或
如果操作数都不为NULL,此时只要有一个非零值,就返回1
如果操作数全是
0
,就返回
0
1 or null
的返回值是
1
0 or null
的返回值是
null
null or null
的返回值是
null
🌱例子4:
XOR
表示逻辑异或
只要有一个操作数为
NULL
时,返回
NULL
。
当所有操作数都不为
NULL
时
如果两个操作数的逻辑值不同,就返回
1
,否则返回
0
5️⃣位运算符
一说到位运算符,有些小伙伴就知道,这肯定和二进制有关。
没错,位运算就是将给定的操作数转换为二进制后,对各个操作数的每一位都进行指定的逻辑运算
再将得到的二进制结果给转换为十进制,这,就是位运算的结果。
✔️表格
下面表格列举了所有位运算符:
符号含义
~
按位取反
&
按位与
|
按位或
^
按位异或
<<
按位左移
>>
按位右移
✨备注:
位运算符是在二进制数的基础上进行操作的,可能比较难懂且枯燥,哈哈,我尽量讲清楚些。
💡举例
🌱例子1:
~
符号----指的是按位取反,注意,这里是一个操作数。- 按位取反,就是将值转换为二进制数,再做
NOT
操作。
来看一个有趣的例子:
看到这里可能会有点懵,
1
取反后等于
18446744073709551614
是什么鬼。
不慌,慢慢看下去:
- MySQL的数值,默认是以8个字节显示的,即64位。
那么数值1就是:
而取反的效果就是:1变为0,0变为1.
显然,1取反后的结果就是63个1加上一个0
如图:
此时再转换为十进制数就是
18446744073709551614
如图:
ok,是不是很简单。
🌱例子2:
&
符号----指的是按位与,将两个操作数转换为二进制再进行&
操作
如图:
为什么
10 & 12 = 8
?别急,往下看:
- 上述例子中,
10 & 12 = 8
背后的逻辑就是:10
转换为二进制数1010
,12
转换为二进制数1100
- 那么
1010 & 1100
就等于1000
- 而
1000
转化为十进制数就是8
&
运算符的规则为:
- 对应的二进制位进行比较
- 相应的二进制位都为1,则该位的结果就为1,否则为0
看下图理解与运算规则:
🌱例子3:
|
运算符----指的是按位或,将两个操作数转换为二进制再进行|
操作
如图:
类似的:
10 | 12 = 14
背后的逻辑就是:10
转换为二进制数1010
,12
转换为二进制数1100
- 那么
1010 | 1100
就等于1110
- 而
1110
转化为十进制数就是14
|
运算符的规则为:
- 对应的二进制位进行比较
- 相应的二进制位只要有一个为1,则该位的结果就为1,否则为0.
看下图理解或运算规则:
🌱例子4:
^
运算符----指的是按位异或,将两个操作数转换为二进制再进行^
操作
如图:
类似的:
10 ^ 12 = 6
背后的逻辑就是:10
转换为二进制数1010
,12
转换为二进制数1100
- 那么
1010 ^ 1100
就等于0110
- 而
0110
转化为十进制数就是6
^
运算符的规则为:
- 对应的二进制位进行比较
- 如果相应的二进制位不同,则该位的数字就为1(对应两位相同则为0)
看下图理解异或运算规则:
🌱例子5:
<<
运算符----指的是左移运算符,用于将二进制码向左移动若干位,后面补0
如图:
其背后逻辑如图所示:
**事实上,一个数左移
n
位,就相当于乘上
2 n 2^n 2n**
比如10乘以
2
3
2^3
23就等于80,效果如图:
🌱例子6:
>>
运算符----指的是右移运算符,用于将二进制码向右移动若干位,前面补0
如图:
其背后逻辑如图所示:
**事实上,一个数右移
n
位,就相当于除以
2 n 2^n 2n**
比如80除以
2
3
2^3
23就等于10,效果如图:
6️⃣小结
好了,终于看完了
MySQL
的运算符。
最后来看看思维导图吧:
希望这篇文章对你有所帮助!
版权归原作者 翼同学 所有, 如有侵权,请联系我们删除。