MySQL-运算符

举报
小奇JAVA 发表于 2022/09/25 01:58:23 2022/09/25
【摘要】 有志者,事竟成 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。 ...

有志者,事竟成
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

在这里插入图片描述


前言

运算符是用来连接表达式中各个操作数的符号,其作用是用来指明对操作数所进行的运算。MySQL数据库支持使用运算符。通过运算符,可以使数据库的功能更加强大。而且,可以更加灵活的使用表中的数据。MySQL运算符包括4类,分别是算术运算符、比较运算符、逻辑运算符和位运算符。

一、运算符简介

当数据库中的表定义完成后,表中的数据代表的意义就已经定下来了。通过使用运算符进行运算,可以得到包含另一层意义的数据。例如,学生表中存在一个birth字段,这个字段是表示学生的出生年份。如果,用户现在希望查找这个学生的年龄。而学生表中只有出生年份,没有字段表示年龄。这就需要进行运算,用当前的年份减去学生的出生年份,这就可以计算出学生的年龄了。

算术运算符:包括加、减、乘、除和求余这几种算数运算符。这类运算符主要是用在数值计算上。其中,求余运算也称为模运算。

比较运算符:包括大于、小于、等于、不等于和为空等比较运算符。主要用于数值的比较、字符串的匹配等方面。尤其值得注意的是,like、in、between and和is null等都是比较运算符。还有用于使用正则表达式的regexp也是比较运算符。

逻辑运算符:包括与、或、非和异或等逻辑运算。这种运算的结果只返回真值(1或true)和假值(0或false).

位运算符:包括按位与、按位或、按位取反、按位异或、按位左移和按位右移等位运算。这些运算都必须先数值变为二进制。然后在二进制数上进行操作的。

二、算术运算符

算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括加、减、乘、除、求余。

下面将t1表中字段a的值进行加法、减法和乘法运算。计算结果显示如下:

在这里插入图片描述

三、比较运算符

比较运算符是查询数据时最常用的一类运算符。select语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。

1、运算符“=”

“=”可以用来判断数字、字符串和表达式等是否相等。如果相等,结果返回1;如果不相等,结果返回0。空值(null)不能使用“=”来判断。

下面使用“=”的例子

select a,a=24,a=20 from t1;

2、运算符“<>”和“!=”

“<>”和“!=”可以用来判断数字、字符串、表达式等是否不相等。如果不相等,结果返回1。如果相等,结果返回0。这两个符号也不能用来判断空值(null)

下面是使用“<>”和“!=”的例子:

在这里插入图片描述

3、运算符“<=>”

“<=>”的作用与“=”是一样的,也是用来判断操作数是否相等。不同的是,“<=>”可以用来判断null。

下面是使用“<=>”的例子:

在这里插入图片描述

4、运算符“>”

“>”用来判断左边的操作数是否大于右边的操作数。如果大于,返回1;如果不大于1,返回0。空值(null)不能使用“>”来判断。

下面是使用“>”的例子:

在这里插入图片描述

5、运算符“>=”

“>=”用来判断左边的操作数是否大于或等于右边的操作数。如果大于或者等于,则返回1。如果小于,返回0。空值(null)不能使用“>=”来判断。

下面是使用“>=”的例子:

在这里插入图片描述

6、运算符“<”

“<”用来判断左边的操作数是否小于右边的操作数。如果小于,返回1;如果不小于1,则返回0。空值(null)不能使用“<”来判断。

下面是使用“<”的例子:

在这里插入图片描述

7、运算符“<=”

“<=”用来判断左边的操作数是否小于或等于右边的操作数。如果小于或者等于,返回1。如果大于,返回0。空值(null)不能使用“<=”来判断。

下面是使用“<=”的例子:

在这里插入图片描述

8、运算符“is null”

“is null”用来判断操作数是否为空值(null)。操作数为null时,结果返回1;操作数不为null时,结果返回0。is not null刚好与is null相反。

下面是使用“is null” 和“is not null”的例子:

在这里插入图片描述

9、运算符“between and”

“between and”可以判断操作数是否落在某个取值范围内。在表达式x1 between m and n中,如果x1大于等于m,而且小于等于n,结果将返回1,如果不是,结果将返回0。

下面是使用“between and”的例子

在这里插入图片描述

10、运算符“in”

“in”可以判断操作数是否落在某个集合中。表达式“x1 in(值1,值2,…,值n)”中,如果x1等于值1到值n中的任何一个值,结果将返回1。如果不是,结果将返回0。

下面是使用“in”的例子:

在这里插入图片描述

11、运算符“like”

“like”用来匹配字符串。在表达式x1 like s1中,如果x1与字符串s1匹配,结果将返回1。如果不匹配,结果将返回0。

下面是使用“like”的例子:

在这里插入图片描述

12、运算符“regexp”

“regexp”也用来匹配字符串,但其是使用正则表达式进行匹配的。表达式“x1 regexp ‘匹配方式’”中,如果x1满足匹配方式,结果将返回1。如果不满足,结果将返回0。

下面是使用“regexp”的例子:

在这里插入图片描述

四、逻辑运算符

逻辑运算符用来判断表达式的真假。逻辑运算符的返回结果只有1和0。如果表达式是真,结果返回1。如果表达式是假,结果返回0。逻辑运算符又称为布尔运算符。MySQL中支持四种逻辑运算符。这四种逻辑运算符分别是与、或、非和异或。

1、与运算

“&&”或者AND表示与运算。所有操作数不为0且不为空值(null)时,结果返回1;存在任何一个操作数为0时,结果返回0;存在一个操作数为null且没有操作数为0时,结果返回null。与运算符“&&”可以有多个操作数同时进行与运算,其基本形式为“x1&&x2&&…&&xn”。

下面是使用“&&”的例子。

在这里插入图片描述

2、或运算

“||”或者OR表示或运算。所有操作数中存在任何一个操作数不为非0的数字时,结果返回1;如果操作数中不包含非0的数字,但包含null时,结果返回null;如果操作数中只有0时,结果返回0。或运算符“||”可以有多个操作数同时进行或运算,其基本形式为“x1||x2||…||xn”。

下面是使用“||”的例子。

在这里插入图片描述

3、非运算

“!”或者not表示非运算。通过非运算,将返回与操作数相反的结果。如果操作数是非0的数字,结果返回0;如果操作数是0,结果返回1;如果操作数是null,结果返回null。或运算符“!”只能有一个操作数进行非运算,其基本形式为“!x1”。

下面是使用“!”的例子。

在这里插入图片描述

4、异或运算

XOR表示异或运算。异或运算符XOR的基本形式为“x1 XOR x2”。只要其中任何一个操作数为null时,结果返回null;如果x1和x2都是非0的数字或者都是0时,结果返回0,;如果x1和x2中一个是非0,另一个是0时,结果返回1。

下面是使用“XOR”的例子。

在这里插入图片描述

五、位运算符

位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,然后进行位运算,最后再将计算结果从二进制数变回十进制数。在MySQL中支持6种位运算符。这6种位运算符分别是按位与、按位或、按位取反、按位异或、按位左移和按位右移。

1、按位与

“&”表示按位与。进行该运算时,数据库系统会先将十进制的数转换为二进制的数。然后对应操作数的每个二进制位上进行与运算。1和1相与得1,与0相与得0。运算完成后再将二进制数变回十进制数。

下面是使用“&”的例子。

在这里插入图片描述

2、按位或

“|”表示按位或。将操作数化为二进制数后,每位都进行或运算。1和任何数进行或运算的结果都是1,0与0或运算结果为0。

下面是使用“|”的例子。

在这里插入图片描述

3、按位取反

“~”表示按位取反。将操作数化为二进制数后,每位都进行取反运算。1取反后变成0,0取反后变成1。

下面是使用“~”的例子。

在这里插入图片描述

4、按位异或

“^”表示按位异或。将操作数化为二进制数后,每位都进行异或运算。相同的数异或之后结果是0,不同的数异或之后结果是1。

下面是使用“^”的例子

在这里插入图片描述

5、按位左移与按位右移

“<<”表示按位左移。“m<<n”表示m的二进制数向左移n位,右边补上n个0。例如,二进制数001左移1位后将变成0010。“>>”表示按位右移。“m>>n”表示m的二进制数向右移n位,左边补上n个0。二进制数001右移1位后变为001,最后一个1被移除去了,直接就不要了。

下面是使用“<<”和“>>”的例子。

在这里插入图片描述

六、运算符的优先级

由于在实际应用中可能需要同时使用多个运算符。这就必须考虑运算符的运算顺序。到底谁先运算。谁后运算?下面列出了运算符的优先级,按照表从上到下,优先级一次降低。

优先级 运算符 优先级 运算符
1 ! 8 |
2 ~ 9 =,<=>,<,<=<>,>=,!=,<>,in,is null,like,regexp
3 ^ 10 between and , case, when,then,else
4 *,/,DIV,%,MOD 11 not
5 +,- 12 &&,AND
6 >>,<< 13 ||,OR,XOR
7 & 14 :=

七、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

文章来源: xiaoqijava.blog.csdn.net,作者:旷世奇才李先生,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaoqijava.blog.csdn.net/article/details/126803761

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。