0


【MySQL运算符详细版】:MySQL运算符,你认识几个?

前言
💂作者简介:大家好,我是翼同学
📃个人主页:翼同学的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转换为二进制数101012转换为二进制数1100
  • 那么1010 & 1100 就等于 1000
  • 1000转化为十进制数就是8
&

运算符的规则为:

  • 对应的二进制位进行比较
  • 相应的二进制位都为1,则该位的结果就为1,否则为0

看下图理解与运算规则

🌱例子3:

  • | 运算符----指的是按位或,将两个操作数转换为二进制再进行 | 操作

如图:

类似的:

  • 10 | 12 = 14 背后的逻辑就是:
  • 10转换为二进制数101012转换为二进制数1100
  • 那么1010 | 1100 就等于 1110
  • 1110转化为十进制数就是14
|

运算符的规则为:

  • 对应的二进制位进行比较
  • 相应的二进制位只要有一个为1,则该位的结果就为1,否则为0.

看下图理解或运算规则

🌱例子4:

  • ^运算符----指的是按位异或,将两个操作数转换为二进制再进行 ^ 操作

如图:

类似的:

  • 10 ^ 12 = 6 背后的逻辑就是:
  • 10转换为二进制数101012转换为二进制数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

的运算符。

最后来看看思维导图吧:

希望这篇文章对你有所帮助!

标签: 学习 数据库 后端

本文转载自: https://blog.csdn.net/m0_62999278/article/details/123930643
版权归原作者 翼同学 所有, 如有侵权,请联系我们删除。

“【MySQL运算符详细版】:MySQL运算符,你认识几个?”的评论:

还没有评论