MySQL 04 章——运算符

一、算数运算符

  1. 算数运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式
    运算符名称作用示例
    +加法运算符计算两个值或表达式的和SELECT A+B
    -减法运算符计算两个值或表达式的差SELECT A-B
    *乘法运算符计算两个值或表达式的乘积SELECT A*B
    /或DIV除法运算符计算两个值或表达式的商SELECT A/B或者SELECT A DIV B
    %或MOD求模(求余)运算符计算两个值或表达式的余数SELECT A%B或者SELECT A MOD B
  2. 举例(取模运算的结果的符号与被模数的符号相同):
  3. 在Java语言中,结果是1001。但是在MySQL中,是101。因为在MySQL中,+没有连接作用,只表示加法运算。此时,会将字符串转换为数值(隐式转换):
  4. 在MySQL中,只有单引号中是数字时,才能进行隐式转换,如果转换数值不成功,就转换为0:

二、比较运算符

  1. 比较运算符用来对表达式左边的操作数额右边的操作数进行比较,比较的结果为真则返回1,比较的结果为假则返回0,其它情况则返回NULL
    运算符名称作用示例
    =等于运算符判断两个值、字符串或表达式是否相等SELECT C FROM TABLE WHERE A = B;
    <=>安全等于运算符安全地判断两个值、字符串或表达式是否相等SELECT C FROM TABLE WHERE A <=> B;
    <>(!=)不等于运算符判断两个值、字符串或表达式是否不相等SELECT C FROM TABLE WHERE A <> B;或者SELECT C FROM TABLE WHERE A != B;
    <小于运算符判断前面的值、字符串或表达式是否小于后面的值、字符串或表达式SELECT C FROM TABLE WHERE A < B;
    <=小于等于运算符判断前面的值、字符串或表达式是否小于等于后面的值、字符串或表达式SELECT C FROM TABLE WHERE A <= B;
    >大于运算符判断前面的值、字符串或表达式是否大于后面的值、字符串或表达式SELECT C FROM TABLE WHERE A > B;
    >=大于等于判断前面的值、字符串或表达式是否大于等于后面的值、字符串或表达式SELECT C FROM TABLE WHERE A >= B;
  2. 举例:
  3. 注意,WHERE后面跟的条件判断结果是1(即true),才会被筛选出来。而commission_pct = NULL的结果始终是NULL(等于运算符和不等于运算符,它们的左右两边的操作数如果有NULL,那么返回结果必然是NULL):
  4. 安全等于运算符(<=>)与等于运算符(=)的作用是相似的,唯一的区别是安全等于运算符可以用来对NULL进行判断。在两个操作数均为NULL时,其返回值为1,而不是NULL;当一个操作数为NULL时,其返回值为0,而不为NULL
  5. 非符号类型的运算符:
    运算符名称作用示例
    IS NULL为空运算符判断值、字符串或表达式是否为空SELECT B FROM TABLE WHERE A IS NULL;
    IS NOT NULL不为空运算符判断值、字符串或表达式是否不为空SELECT B FROM TABLE WHERE A IS NOT NULL;
    LEAST最小值运算符在多个值中返回最小值SELECT LEAST(A,B) FROM TABLE;
    GREATEST最大值运算符在多个值中返回最大值SELECT GREATEST(A,B) FROM TABLE;
    BETWEEN AND两值之间的运算符判断一个值是否在两个值之间SELECT D FROM TABLE WHERE C BETWEEN A AND B;
    ISNULL为空运算符判断值、字符串或表达式是否为空SELECT B FROM TABLE WHERE ISNULL(A);
    IN属于运算符判断一个值是否为列表中的任意一个值SELECT B FROM TABLE WHERE A IN (A,B);
    NOT IN不属于运算符判断一个值是否不是一个列表中的任意一个值SELECT B FROM TABLE WHERE A NOT IN (A,B);
    LIKE模糊匹配运算符判断一个值是否符合模糊匹配规则SELECT C FROM TABLE WHERE A LIKE B;
    REGEXP正则表达式运算符判断一个值是否符合正则表达式的规则SELECT C FROM TABLE WHERE A REGEXP B;
    RLIKE正则表达式运算符判断一个值是否符合正则表达式的规则SELECT C FROM TABLE WHERE A RLIKE B;
  6. 举例:
  7. _(下划线)代表一个不确定的字符:
  8. REGEXP运算符:
    1. '^'匹配以该字符后面的字符开头的字符串
    2. '$'匹配以该字符前面的字符结尾的字符串
    3. '.'匹配任何一个单字符
    4. "[...]"匹配在方括号内的任何字符。例如,"[abc]"匹配"a"或"b"或"c"。为例命名字符的范围,使用一个'-'。"[a-z]"匹配任何字母,"[0-9]"匹配任何数字
    5. '*'匹配0个或多个在它前面的字符。例如,"x*"匹配任何数量的'x'字符,"[0-9]*"匹配任何数量的数字
  9. 当字符串与数字进行运算或比较时,如果它能转换成数值,就用转换后的数值与数字进行运算或比较。如果它不能转换成某个数值,它就会被转换为0
  10. 两个字符串进行比较时 ,依次比较它们相应位置字符的ASCII码值
  11. 当两个字符串进行运算时,把这两个字符串转为数值

三、逻辑运算符

  1. 逻辑运算符主要用来判断表达式的真假,在MySQL中,逻辑运算符的返回结果为1、0或NULL(逻辑运算符的操作数必须是本身就能得出真或假的)
    运算符作用示例
    NOT 或 !逻辑非SELECT NOT A
    AND 或 &&逻辑与SELECT A  AND B或者SELECT A && B
    OR 或 ||逻辑或SELECT A OR B或者SELECT A || B
    XOR逻辑异或SELECT A XOR B(左右两边的判断结果不一样,就是真)
  2. 举例:

四、位运算符

  1. 位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,然后进行运算,最后将计算结果从二进制数变回十进制数
    运算符作用示例
    &按位与SELECT A & B
    |按位或SELECT A | B
    ^按位异或SELECT A ^ B
    ~按位取反SELECT ~A
    >>按位右移SELECT A>>1(1代表移动1位)
    <<按位左移SELECT B<<1(1代表移动1位)
  2. 按位与(以12 & 5为例):12的二进制表示为00001100,5的二进制表示为00000101。把0当作假,1当作真。&理解为且,因此0 & 1为0。计算结果为00000100,转为十进制,得到4
  3. 按位或(以12 | 5为例):12的二进制表示为00001100,5的二进制表示为00000101。把0当作假,1当作真。|理解为或,因此0 | 1为1。计算结果为00001101,转为十进制,得到13
  4. 按位异或(以为12 ^ 5为例):12的二进制表示为00001100,5的二进制表示为00000101。把0当作假,1当作真。^理解为异或,因此计算结果为00001001,转为十进制,得到9
  5. 按位取反运算符,就是将给定的值的二进制逐位进行取反操作,0变成1,1变成0
  6. 左移:以十进制数4为例,4对应的二进制是00000100。将整体左移一位,变成00001000。转为十进制是8
  7. 右移:以十进制数8为例,8对应的二进制是00001000。将整体右移一位,变成00000100。转为十进制是4

五、运算符的优先级

  1. OR可以和AND一起使用,但是在使用时要注意两者的优先级,由于AND的优先级高于OR,因此先对AND两边的操作数进行运算,再与OR中的操作数结合
  2. ()的优先级最高,最先计算()里的

六、课后练习

  1. 选择工资不在5000到12000的员工的姓名和工资
  2. 选择在20或50号部门工作的员工姓名和部门号
  3. 选择公司中没有管理者的员工姓名及jod_id
  4. 选择公司中有奖金的员工姓名,工资和奖金级别
  5. 选择员工姓名的第三个字母是a的员工姓名
  6. 选择姓名中有字母a和k的员工姓名
  7. 显示出表employees表中first_name以'e'结尾的员工信息
  8. 显示出表employees部门编号在80-100之间的姓名、工种
  9. 显示出表employees的manager_id是100,101,110的员工姓名、工资和管理者id

该笔记根据尚硅谷的MySQL课程整理 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ES IK分词器插件

前言 ES中默认了许多分词器&#xff0c;但是对中文的支持并不友好,IK分词器是一个专门为中文文本设计的分词工具&#xff0c;它不是ES的内置组件&#xff0c;而是一个需要单独安装和配置的插件。 Ik分词器的下载安装&#xff08;Winows 版本&#xff09; 下载地址&#xff1a;…

Oracle DG备库数据文件损坏修复方法(ORA-01578/ORA-01110)

今天负责报表的同事反馈在DG库查询时出现如下报错 ORA-01578:ORACLE数据块损坏(文件号6,块号 2494856)ORA-01110:数据文件6: /oradata/PMSDG/o1 mf users_molczgmn_.dbfORA-26040:数据块是使用 NOLOGGING 选项加载的 可以看到报错是数据文件损坏&#xff0c;提示了file id和b…

idea无法安装插件

目录 修改工具配置 本地安装 无法下载很多时候就是延迟太高导致的&#xff0c;我们先打开插件官网看一下 Python - IntelliJ IDEs Plugin | Marketplace 修改工具配置 1、配置代理&#xff08;点击 setting-点击 plugins-在点击 http proxy Settings&#xff09; 输入&…

Linux部署web项目【保姆级别详解,Ubuntu,mysql8.0,tomcat9,jdk8 附有图文】

文章目录 部署项目一.安装jdk1.1 官网下载jdk81.2 上传到Linux1.3 解压1.4 配置环境变量1.5 查看是jdk是否安装成功 二.安装TomCat2.1 官网下载2.2 上传到Linux2.3 解压2.4配置2.5 启动Tomcat2.6 验证是否成功 三.安装mysql四.部署javaweb项目4.1 打包4.2 启动tomcat 部署项目 …

服务器等保测评日志策略配置

操作系统日志 /var/log/message 系统启动后的信息和错误日志&#xff0c;是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相关的…

初学stm32 --- FSMC驱动LCD屏

目录 FSMC简介 FSMC框图介绍 FSMC通信引脚介绍 FSMC_NWE 的作用 FSMC_NWE 的时序关系 FSMC_NOE 的含义 FSMC_NOE 的典型用途 FSMC_NOE 的时序关系 使用FSMC驱动LCD FSMC时序介绍 时序特性中的 OE ILI9341重点时序&#xff1a; FSMC地址映射 HADDR与FSMC_A关系 LCD的…

业务模型与UI设计

业务数据模型的设计、UI设计这应该是程序设计中不可缺少的部分。做程序设计的前提应该先把这两块设计好&#xff0c;那么&#xff0c;来一个实际案例&#xff0c;看看这2块的内容。 汽车保养记录业务模型与UI设计&#xff1a; 一、【车辆清单】 记录车辆相关的数据&#xff0…

【JavaScript】变量-常量-数据类型-类型转换

目录 一、JavaScript 介绍 1. JavaScript &#xff08;是什么&#xff1f;&#xff09; 2. 作用&#xff08;做什么&#xff1f;&#xff09; 3. JavaScript的组成&#xff08;有什么&#xff1f;&#xff09; 3.1 ECMAScript: 3.2 Web APIs : 总结&#xff1a; 4. Jav…

day30-awk精讲

awk其实不仅仅是工具软件&#xff0c;还是一种编程语言。 不过&#xff0c;本文只介绍它的命令行用法&#xff0c;对于大多数场合&#xff0c;应该足够用了。 awk是什么 awk是一个强大的linux命令&#xff0c;有强大的文本格式化的能力&#xff0c;好比将一些文本数据格式化…

实战设计模式之建造者模式

概述 在实际项目中&#xff0c;我们有时会遇到需要创建复杂对象的情况。这些对象可能包含多个组件或属性&#xff0c;而且每个组件都有自己的配置选项。如果直接使用构造函数或前面介绍的工厂方法来创建这样的对象&#xff0c;可能会导致以下两个严重问题。 1、参数过多。当一个…

滤波器的主要参数

为什么选择高阶&#xff1a; 滤波器的主要参数通常包括以下几个方面&#xff1a; 截止频率 (Cutoff Frequency)&#xff1a; 这是滤波器能够有效通过或抑制信号的频率点。对于低通滤波器&#xff0c;信号低于截止频率的部分会被通过&#xff0c;高于截止频率的部分会被衰减。高…

HNSW概述

1. \textbf{1. } 1. 一些导论 1.1. \textbf{1.1. } 1.1. 朴素基于图的 ANN \textbf{ANN} ANN 1️⃣建图&#xff1a;对数据库中所有的点&#xff0c;构建 k -NN k\text{-NN} k-NN图(下图以 3 -NN 3\text{-NN} 3-NN为例) 2️⃣检索&#xff1a; GreedySearch \text{GreedySearch…

小程序学习07—— uniapp组件通信props和$emit和插槽语法

目录 一 父组件向子组件传递消息 1.1 props &#xff08;a&#xff09;传递静态或动态的 Prop &#xff08;b&#xff09;单向数据流 二 子组件通知父组件 2.1 $emit &#xff08;a&#xff09;定义自定义事件 &#xff08;b&#xff09;绑定自定义事件 三 插槽语法…

【视频笔记】基于PyTorch从零构建多模态(视觉)大模型 by Umar Jamil【持续更新】

视频链接: 基于PyTorch从零构建多模态(视觉)大模型 by Umar Jamil 从头编写一个视觉语言模型:PloyGamma,是谷歌的一个模型 1:原始图像 2:视觉编码器(本文是viT),通过对比学习进行训练。这个对比学习最开始是CLIP,后来被谷歌改成了SigLIP 3:线性投影层 4:如何将图…

UniApp | 从入门到精通:开启全平台开发的大门

UniApp | 从入门到精通:开启全平台开发的大门 一、前言二、Uniapp 基础入门2.1 什么是 Uniapp2.2 开发环境搭建三、Uniapp 核心语法与组件3.1 模板语法3.2 组件使用四、页面路由与导航4.1 路由配置4.2 导航方法五、数据请求与处理5.1 发起请求5.2 数据缓存六、样式与布局6.1 样…

《数据结构》期末考试测试题【中】

《数据结构》期末考试测试题【中】 21.循环队列队空的判断条件为&#xff1f;22. 单链表的存储密度比1&#xff1f;23.单链表的那些操作的效率受链表长度的影响&#xff1f;24.顺序表中某元素的地址为&#xff1f;25.m叉树第K层的结点数为&#xff1f;26. 在双向循环链表某节点…

Leffa 虚拟试衣论文笔记

Leffa: Learning Flow Fields in Attention for Controllable Person Image Generation https://github.com/xuanandsix/awesome-virtual-try-on-note/tree/main/Leffa 打开链接查看详情&#xff0c;更多虚拟试穿论文持续更新。

BP神经网络的反向传播算法

BP神经网络&#xff08;Backpropagation Neural Network&#xff09;是一种常用的多层前馈神经网络&#xff0c;通过反向传播算法进行训练。反向传播算法的核心思想是通过计算损失函数对每个权重的偏导数&#xff0c;从而调整权重&#xff0c;使得网络的预测输出与真实输出之间…

Git快速入门(三)·远程仓库GitHub以及Gitee的使用

目录 1. 远程仓库GitHub 1.1 登录 1.2 创建库 1.3 创建文件 1.4 修改文件 1.5 创建分支 1.6 删除库 1.7 将远程仓库下载到本地 1.7.1 关联登录 1.7.2 克隆 1.7.3 通过GitHub Desktop更改远程库 2. 远程仓库Gitee 2.1 登录 2.2 创建文件 2.3 关联…

【JVM】总结篇-字节码篇

字节码篇 Java虚拟机的生命周期 JVM的组成 Java虚拟机的体系结构 什么是Java虚拟机 虚拟机&#xff1a;指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 &#xff0c;是物理机的软件实现。常用的虚拟机有VMWare&#xff0c;Visual Box&…