MySQL常用运算符详解

2023-05-16

MySQL 数据库中的表结构确立后,表中的数据代表的意义就已经确定。而通过 MySQL 运算符进行运算,就可以获取到表结构以外的另一种数据。

例如,学生表中存在一个 birth 字段,这个字段表示学生的出生年份。而运用 MySQL 的算术运算符用当前的年份减学生出生的年份,那么得到的就是这个学生的实际年龄数据。

MySQL 支持 4 种运算符,分别是:

1) 算术运算符

执行算术运算,例如:加、减、乘、除等。

2) 比较运算符

包括大于、小于、等于或者不等于,等等。主要用于数值的比较、字符串的匹配等方面。例如:LIKE、IN、BETWEEN AND 和 IS NULL 等都是比较运算符,还包括正则表达式的 REGEXP 也是比较运算符。

3) 逻辑运算符

包括与、或、非和异或等逻辑运算符。其返回值为布尔型,真值(1 或 true)和假值(0 或 false)。

4) 位运算符

包括按位与、按位或、按位取反、按位异或、按位左移和按位右移等位运算符。位运算必须先将数据转换为二进制,然后在二进制格式下进行操作,运算完成后,将二进制的值转换为原来的类型,返回给用户。

算术运算符

算术运算符是 SQL 中最基本的运算符,MySQL 中的算术运算符如下表所示。

算术运算符说明
+加法运算
-减法运算
*乘法运算
/除法运算,返回商
%求余运算,返回余数

比较运算符

比较运算符的语法格式为:

  1. <表达式1> {= | < | <= | > | >= | <=> | < > | !=} <表达式2>

MySQL 支持的比较运算符如下表所示。

比较运算符说明
=等于
<小于
<=小于等于
>大于
>=大于等于
<=>安全的等于,不会返回 UNKNOWN
<> 或!=不等于
IS NULL 或 ISNULL判断一个值是否为 NULL
IS NOT NULL判断一个值是否不为 NULL
LEAST当有两个或多个参数时,返回最小值
GREATEST当有两个或多个参数时,返回最大值
BETWEEN AND判断一个值是否落在两个值之间
IN判断一个值是IN列表中的任意一个值
NOT IN判断一个值不是IN列表中的任意一个值
LIKE通配符匹配
REGEXP正则表达式匹配

下面分别介绍不同的比较运算符的使用方法。

1) 等于运算符“=”

等号“=”用来判断数字、字符串和表达式是否相等。如果相等,返回值为 1,否则返回值为 0。

数据进行比较时,有如下规则:

  • 若有一个或两个参数为 NULL,则比较运算的结果为 NULL。
  • 若同一个比较运算中的两个参数都是字符串,则按照字符串进行比较。
  • 若两个参数均为正数,则按照整数进行比较。
  • 若一个字符串和数字进行相等判断,则 MySQL 可以自动将字符串转换成数字。

2) 安全等于运算符“<=>”

用于比较两个表达式的值。当两个表达式的值中有一个为空值或者都为空值时,将返回 UNKNOWN。

对于运算符“<=>”,当两个表达式彼此相等或都等于空值时,比较结果为 TRUE;若其中一个是空值或者都是非空值但不相等时,则为 FALSE,不会出现 UNKNOWN 的情况。

3) 不等于运算符“<>”或者“!=”

“<>”或者“!=”用于数字、字符串、表达式不相等的判断。如果不相等,返回值为 1;否则返回值为 0。这两个运算符不能用于判断空值(NULL)。

4) 小于或等于运算符“<=”

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

5) 小于运算符“<”

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

6) 大于或等于运算符“>=”

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

7) 大于运算符“>”

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

8) IS NULL(或者 ISNULL)

IS NULL 和 ISNULL 用于检验一个值是否为 NULL,如果为 NULL,返回值为 1;否则返回值为 0。

9) IS NOT NULL

IS NOT NULL 用于检验一个值是否为非 NULL,如果为非 NULL,返回值为 1;否则返回值为 0。

10) BETWWEN AND

语法格式为:

  1. <表达式> BETWEEN <最小值> AND <最大值>

<表达式>大于或等于<最小值>,且小于或等于<最大值>,则 BETWEEN 的返回值为 1;否则返回值为 0。

11) LEAST

语法格式为:

  1. LEAST(<值1>,<值2>,…,<值n>)

其中,值 n 表示参数列表中有 n 个值。存在两个或多个参数的情况下,返回最小值。若任意一个自变量为 NULL,则 LEAST() 的返回值为 NULL。

12) GREATEST

语法格式为:

  1. GREATEST (<值1>,<值2>,…,<值n>)

其中,值 n 表示参数列表中有 n 个值。存在两个或多个参数的情况下,返回最大值。若任意一个自变量为 NULL,则 GREATEST() 的返回值为 NULL。

13) IN

IN 运算符用来判断操作数是否为 IN 列表中的一个值。如果是,返回值为 1;否则返回值为 0。

14) NOT IN

NOT IN 运算符用来判断表达式是否为 IN 列表中的一个值。如果不是,返回值为 1;否则返回值为 0。

逻辑运算符

在 SQL 语言中,所有逻辑运算符求值所得的结果均为 TRUE、FALSE 或 NULL。在 MySQL 中分别体现为 1(TRUE)、0(FALSE)和 NULL。

MySQL 中的逻辑运算符如下表所示。

逻辑运算符说明
NOT 或者 !逻辑非
AND 或者 &&逻辑与
OR 或者 \\逻辑或
XOR逻辑异或

下面分别介绍不同的逻辑运算符的使用方法。

1) NOT 或者 !

逻辑非运算符 NOT 或者 !,表示当操作数为 0 时,返回值为 1;当操作数为非零值时,返回值为 0;当操作数为 NULL 时,返回值为 NULL。

2) AND 或者 &&

逻辑与运算符 AND 或者 &&,表示当所有操作数均为非零值并且不为 NULL 时,返回值为 1;当一个或多个操作数为 0 时,返回值为 0;其余情况返回值为 NULL。

3) OR 或者 ||

逻辑或运算符 OR 或者 ||,表示当两个操作数均为非 NULL 值且任意一个操作数为非零值时,结果为 1,否则结果为 0;当有一个操作数为 NULL 且另一个操作数为非零值时,结果为 1,否则结果为 NULL;当两个操作数均为 NULL 时,所得结果为 NULL。

4) XOR

逻辑异或运算符 XOR。当任意一个操作数为 NULL 时,返回值为 NULL;对于非 NULL 的操作数,若两个操作数都不是 0 或者都是 0 值,则返回结果为 0;若一个为 0,另一个不为非 0,则返回结果为 1。

位运算符

位运算符是用来对二进制字节中的位进行移位或者测试处理的。

MySQL 中提供的位运算符如下表所示。

位运算符说明
\按位或
&按位与
^按位异或
<<按位左移
>>按位右移
~按位取反,反转所有比特

下面分别介绍不同的位运算符的使用方法。

1) 位或运算符“|”

位或运算的实质是将参与运算的两个数据按对应的二进制数逐位进行逻辑或运算。若对应的二进制位有一个或两个为 1,则该位的运算结果为 1,否则为 0。

2) 位与运算符“&”

位与运算的实质是将参与运算的两个数据按对应的二进制数逐位进行逻辑与运算。若对应的二进制位都为 1,则该位的运算结果为 1,否则为 0。

3) 位异或运算符“^”

位异或运算的实质是将参与运算的两个数据按对应的二进制数逐位进行逻辑异或运算。对应的二进制位不同时,对应位的结果才为 1。如果两个对应位都为 0 或者都为 1,则对应位的结果为 0。

4) 位左移运算符“<<”

位左移运算符“<<”使指定的二进制值的所有位都左移指定的位数。左移指定位数之后,左边高位的数值将被移出并丢弃,右边低位空出的位置用 0 补齐。

语法格式为`表达式<,这里 n 指定值要移位的位数。

5) 位右移运算符“>>”

位右移运算符“>>”使指定的二进制值的所有位都右移指定的位数。右移指定位数之后,右边高位的数值将被移出并丢弃,左边低位空出的位置用 0 补齐。

语法格式为表达式>>n,这里 n 指定值要移位的位数。

6) 位取反运算符“~”

位取反运算符的实质是将参与运算的数据按对应的二进制数逐位反转,即 1 取反后变 0,0 取反后变为 1。

运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL 中的各类运算符及其优先级。

优先级由低到高排列运算符
1=(赋值运算)、:=
2II、OR
3XOR
4&&、AND
5NOT
6BETWEEN、CASE、WHEN、THEN、ELSE
7=(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN
8\
9&
10<<、>>
11-(减号)、+
12*、/、%
13^
14-(负号)、〜(位反转)
15!

可以看出,不同运算符的优先级是不同的。一般情况下,级别高的运算符优先进行计算,如果级别相同,MySQL 按表达式的顺序从左到右依次计算。

另外,在无法确定优先级的情况下,可以使用圆括号“()”来改变优先级,并且这样会使计算过程更加清晰。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL常用运算符详解 的相关文章

  • 职场 | Intel因特尔2019届软件工程师秋招笔试题

    同样的本文是对笔试过程中 xff0c 仍然记得的考点的查漏补缺 一共分为三部分 xff1a 选择题 编程题 附加题 时间是两个小时 xff0c 个人感觉因特尔的笔试题对于内核 xff0c 内存管理等方面的考点较多 xff0c 具体属于什么科
  • 记录fastboot刷系统中各个img文件

    Android系统adb刷机 在android的各个可用软件中 xff0c adb fastboot是最常用的一种 xff0c 还有一些基本的shell xff0c 作为爱搞机的开发人员来说 xff0c 我们需要经常的进行内核 xff0c
  • Lottie动画学习(Kotlin)

    最近一直在学习kotlin xff0c 又接触到 Lottie 动画 xff0c 网上是Java写的 Lottie动画 xff0c 我用kotlin写了一边 xff0c 发现了一写问题 总结一下 Lottie学习文章 Lottie for
  • Lottie 的相关下载及使用

    Lottie 是 Airbnb 开源的一套动画库 我们可以使用 Adobe After Effects 俗称AE 设计出动画 使用 Lottie提供的 Bodymovin 插件将设计好的动画导出成 JSON 格式 就可以直接运用在 iOS
  • CentOS7下非root账号通过systemctl管理服务需要输入root密码

    问题描述 xff1a 使用普通账号test通过systemctl启动系统服务提示需要输入root密码 xff1a 解决方案一 xff1a 根据上面提示得知权限由polkit进行管理 xff0c 对应的是org freedesktop sys
  • SpringBoot 集成cas5.3 使用JDBC认证并实现自定义加密算法

    今天我们讲解一下CAS的认证方式 xff0c 有JDBC认证 白名单 Whitelist 认证 黑名单 Blacklist 认证 Shiro认证 Rest认证 目前只针对JDBC认证讲解 xff0c 更多抽时间更新 1 JDBC认证 在前面
  • log4j2配置文件详解及实战部分配置

    注 xff1a 原文转载链接出自 xff1a log4j2配置文件详解 牧凡的天空 CSDN博客 log4j2配置文件详解 一 关于配置文件的名称以及在项目中的存放位置 log4j 2 x版本不再支持像1 x中的 properties后缀的
  • 最短路径问题---Dijkstra算法详解

    此文章转载自 xff1a https blog csdn net heroacool article details 51014824 迪杰斯特拉 Dijkstra 算法是典型最短路径算法 xff0c 用于计算一个节点到其他节点的最短路径
  • Linux使用grep指令的时候汉字出现乱码

    今天在使用grep在文件中查找包含特定汉字的数据时总是出现乱码 不管是手动敲进去还是复制粘贴都不行 xff0c 不仅如此添加 删除汉字串等编辑操作也是特别混乱 在网上找了很多解决方案都不靠谱 xff0c 最后用了下面的方法解决啦 才知道是个
  • SQL-mysql设置utf8编码方法

    mysql gt SHOW VARIABLES LIKE 39 character set 39 43 43 43 Variable name Value 43 43 43 character set client latin1 chara
  • windows connect()返回错误的代码10061的解决办法

    即还没有开启服务器端 开启服务器端就可以了
  • Python爬虫(二)——爬取电影天堂,保存下载地址

    首先我们开始要分析一下 xff0c 下载种子我们需要哪几步 xff1a 获取所有电影页的访问地址获取电影页源码提取出下载地址将下载地址保存 首先第一步 xff0c 我们来分析一下电影天堂网站的结构 xff0c 发现他跟我们的古诗文网还是非常
  • [Android 基础] -- SELinux/SEAndroid 实例简述(三) 实例看 SELinux/SEAndroid

    扩展 xff1a 在传统的 Linux 系统中 xff0c 每一个应用程序都对应有一个可执行文件 在这种情况下 xff0c 我们就可以在安全策略中设定一个规则 xff1a 当一个可执行文件加载到一个进程中执行时 xff0c 该进程的安全上下
  • 水浒传水果拉霸类游戏物体旋转思路

    lt p gt 这种模式很常见 xff0c 也可以衍生类似的抽奖系统之类 xff0c 以水浒传为例 xff0c 市面上的水浒传有多种表现形式 xff0c 我见到过主要的两种 xff1a 一种是分为15个格子 xff0c 每个格子之内做单独自
  • 《离散数学》知识点总结

    离散数学 文章目录 离散数学 x1f921 命题 命题概念 x1f412 联结词 x1f6be 范式 x1f615 推理 x1f47b 谓词逻辑 综合复查知识点 x1f921 命题 命题概念 具有唯一真值的陈述句 1 感叹句 疑问句 祈使句
  • Python Scrapy中yield Request的理解

    最近在看 learn scrapy 中的关于爬虫的部分 xff0c 对于parse中的yield Request用法不是很理解 xff0c 现在总结下 lt pre gt lt pre name 61 34 code 34 class 61
  • MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网)

    COCO系列文章 xff1a MS COCO数据集目标检测评估 xff08 Detection Evaluation xff09 xff08 来自官网 xff09 MS COCO数据集人体关键点评估 xff08 Keypoint Evalu
  • Unity VR游戏开发干货教程:VR中的交互方式

    游戏程序 平台类型 虚拟VR 程序设计 编程语言 引擎 SDK Unity3D 2D GameRes游资网授权发布 文 王寒 在VR项目中 xff0c 我们需要在用户 凝视 某个物体时将其激活 在VRSamples中 xff0c 我们构建了
  • 汉诺塔算法 ----C++语言递归实现

    起源 汉诺塔 xff08 又称河内塔 xff09 问题是源于印度一个古老传说的益智玩具 大梵天创造世界的时候做了三根金刚石柱子 xff0c 在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘 大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆
  • 解决ubuntu18.04环境下无法调整分辨率的问题

    解决ubuntu18 04环境下无法调整分辨率的问题 问题来源 一般ubuntu环境下不能调整分辨率主要是因为显卡驱动出问题 xff0c 所以本文通过执行显卡驱动相关的操作解决分辨率的问题 解决问题 如果电脑上还没有安装过显卡驱动 参考这篇

随机推荐

  • web-绑定event事件比较

    HTML中为按钮绑定event方式有三种 xff1a eg xff1a lt button type 61 34 submit 34 id 61 34 btn submit 34 gt submit lt button gt 一 使用jQu
  • cas的overlay插件的理解以及内置的tomcat升级记录

    参考文档 xff1a https blog csdn net hewusheng10 article details 108328013 最近参与的门户项目中 xff0c 涉及到多个业务系统单点登录功能 xff0c 于是使用了cas作为单点
  • su不用输入密码

    su命令 作用 su 为switch user 背景 平时开发在测试环境调测 xff0c 因为操作系统都是被加固的 xff0c su切换用户需要输入命令 xff0c 很麻烦 xff0c 如何su切换不输入命令勒 xff0c 操作如下 操作
  • AOP详解

    文章目录 目录 前言 二 设计模式 三 名词解释 四 代码 方式一 方式二 方式三 xff1a 注解 总结 前言 Spring的两大核心是IOC和AOP xff0c 其中IOC是指控制反转 xff0c 指的是bean对象无需用户手动维护 x
  • Opencv中的Mat类使用方法总结

    此文章转载自 xff1a http lib csdn net article opencv 42000 今天在看Opencv的SIFT源码 xff0c 至于有关于SIFT算法的博客还没有写完 xff0c 等着我把源码看完再一起写完吧 之前用
  • 快速排序-java版(快排)

    算法本质 快排属于交换排序 xff0c 快排的基本思想是基于分治的 快排的本质就是通过一趟排序将基准数排到最终的位置 即以基准数为中心将待排序的序列划分成两个子序列 xff0c 一个子序列是基准数前面的数 xff0c 都比基准数小 xff1
  • Ubuntu 16.04安装chrome稳定版

    1 打开终端 xff08 Ctrl 43 Alt 43 T xff09 xff0c 输入以下命令 xff1a sudo wget https repo fdzh org chrome google chrome list P etc apt
  • 【建议收藏】保姆级教程 - 图解Windows10+优麒麟双系统安装

    为防止超速翻车 xff0c 建议通读全文后再进行操作 xff08 此处双系统以 Windows 10 43 优麒麟 20 04 LTS Pro 为例 xff0c 其他版本的系统仅供参考 xff09 01 安装前的准备 四小步 第一步 xff
  • Linux文件系统--文件类型

    Linux中一切都是文件 xff0c 文件类型有多种 xff0c 使用ls l命令可以查看文件属性 xff0c 所显示结果的第一列的第一个字符用来表示文件类型 xff0c 如下 xff1a 1 普通文件 第一列第一个字符为 的文件为普通文件
  • Windows Terminal 快速配置 oh-my-posh

    背景 想美化下windows terminal xff0c 选择了oh my posh 网上的文章有点多 xff0c 加上官方的教程对初次使用着并不是太友好 xff0c 所以自己快速摸索了 记录下过程 步骤 1 xff0c 安装oh my
  • SVN彻底删除某版本的方法

    如果出现了提交失误 xff0c 想从服务器端彻底删除某版本 xff0c 可以这么做 在服务器端的Repository RepoName db revs 0和 db revprops 0中删除对应的版本号 xff0c 此时再update会出现
  • ZEMAX | 使用点扩散函数的衍射极限成像系统的分辨率

    ZEMAX 使用点扩散函数的衍射极限成像系统的分辨率 成像系统 xff08 例如显微镜 xff09 的衍射极限分辨率可以通过不同方式表征 在本文中 xff0c 我建议使用在 OpticStudio 中计算的点扩散函数 PSF 来客观衡量这些
  • 荐书 | 从启蒙到进阶,值得推荐的五本少儿编程

    据小木对身边的人了解 xff0c 好像码农们都有这么一个愿望 xff1a 等我有孩子了 xff0c 我一定教我的孩子学编程 玩游戏玩自己设计的才酷 xff01 看着一个个码农爸爸憧憬着美好的愿景 xff0c 小木恨不得马上帮他们实现这个愿望
  • 在浏览器中输入一个网址后,发生了什么?

    此文章转载自 xff1a https www cnblogs com SarahLiu p 5954832 html 这是面试中一道非常经典的问题 当你在浏览器中输入一个网址 xff0c 浏览器的处理过程如下 xff1a 第一步 浏览器查找
  • Banner基本使用 2.1.0

    Step 1 依赖banner Gradle dependencies compile 39 com youth banner banner 2 1 0 39 Step 2 添加权限到你的 AndroidManifest xml lt if
  • eclipse控制台变动难调整

  • 苹果cms详细安装方法

    做影视网站的站长对苹果cms是相当熟悉的 xff0c 毕竟这套系统实在太好用了 xff0c 使它一直火到了今天 xff01 今天小编就带着刚接触到本套程序的大家用它来搭建一次影视视频网站 xff01 程序运行环境 Apache 43 PHP
  • MySQL的版本以及版本号

    针对不同的用户 xff0c MySQL 分为两个版本 xff1a MySQL Community Server xff08 社区版 xff09 xff1a 该版本完全免费 xff0c 但是官方不提供技术支持 MySQL Enterprise
  • MySQL配置教程(图解版)

    配置 MySQL 数据库有两种比较常见的方式 xff0c 分别是使用配置向导和手动更改 xff0c 下面我们来分别介绍一下这两种方式 使用配置向导 步骤 1 xff1a MySQL 安装完成之后 xff0c 进行配置信息的确认 xff0c
  • MySQL常用运算符详解

    MySQL 数据库中的表结构确立后 xff0c 表中的数据代表的意义就已经确定 而通过 MySQL 运算符进行运算 xff0c 就可以获取到表结构以外的另一种数据 例如 xff0c 学生表中存在一个 birth 字段 xff0c 这个字段表