当前位置: 首页 > news >正文

MySQL-运算符

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

在这里插入图片描述

文章目录

  • 前言
  • 一、运算符简介
  • 二、算术运算符
  • 三、比较运算符
    • 1、运算符“=”
    • 2、运算符“<>”和“!=”
    • 3、运算符“<=>”
    • 4、运算符“>”
    • 5、运算符“>=”
    • 6、运算符“<”
    • 7、运算符“<=”
    • 8、运算符“is null”
    • 9、运算符“between and”
    • 10、运算符“in”
    • 11、运算符“like”
    • 12、运算符“regexp”
  • 四、逻辑运算符
    • 1、与运算
    • 2、或运算
    • 3、非运算
    • 4、异或运算
  • 五、位运算符
    • 1、按位与
    • 2、按位或
    • 3、按位取反
    • 4、按位异或
    • 5、按位左移与按位右移
  • 六、运算符的优先级
  • 七、总结


前言

运算符是用来连接表达式中各个操作数的符号,其作用是用来指明对操作数所进行的运算。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^10between and , case, when,then,else
4*,/,DIV,%,MOD11not
5+,-12&&,AND
6>>,<<13||,OR,XOR
7&14:=

七、总结

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

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

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

相关文章:

  • 【c++ primer 笔记】第 16章 模板与泛型编程
  • kubernetes 之 Pod 控制器 Deployment
  • 【华为校招】【校招】【Java】【模拟】贪吃蛇
  • 字节跳动校招——运维工程师-系统架构岗位面经分享
  • 自动控制原理9.4---李雅普诺夫稳定性分析
  • Java中的多线程概述、多线程实现、线程类常见的方法与线程安全问题详细使用(多线程上篇含Lock锁同步方法同步代码块)
  • MySQL数据库必会的增删查改操作(CRUD)
  • maven常用插件详解
  • 【JavaScript-事件②】表单元素的属性操作,密码显示隐藏的实现
  • 猿创征文 | 万字总结C文件
  • 【微信小程序入门到精通】— AppID和个性配置你学会了么?
  • 【Luogu P6902】[ICPC2014 WF] Surveillance(倍增,贪心)
  • 第一章 Java概述
  • c++的多态和虚函数
  • 第一章:Java第一阶段
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • ➹使用webpack配置多页面应用(MPA)
  • CSS 专业技巧
  • es的写入过程
  • JavaScript学习总结——原型
  • Java反射-动态类加载和重新加载
  • Linux CTF 逆向入门
  • 力扣(LeetCode)56
  • 网络应用优化——时延与带宽
  • 想写好前端,先练好内功
  • 原生JS动态加载JS、CSS文件及代码脚本
  • Java数据解析之JSON
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • #FPGA(基础知识)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (175)FPGA门控时钟技术
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (过滤器)Filter和(监听器)listener
  • (一)插入排序
  • (转)关于多人操作数据的处理策略
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core Swagger 过滤部分Api
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • 。Net下Windows服务程序开发疑惑
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ 蓝桥杯Web真题 ]-布局切换
  • [ 数据结构 - C++] AVL树原理及实现
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [AIGC] Spring Interceptor 拦截器详解
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Android]使用Git将项目提交到GitHub
  • [Android]竖直滑动选择器WheelView的实现
  • [BZOJ3223]文艺平衡树
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [ComfyUI进阶教程] animatediff视频提示词书写要点