MySQL-运算符

文章目录

    • [1. 运算符概述](#1. 运算符概述)
    • [2. 算术运算符](#2. 算术运算符)
    • [3. 比较运算符](#3. 比较运算符)
    • [4. 逻辑运算符](#4. 逻辑运算符)
    • [5. 位运算符](#5. 位运算符)

1. 运算符概述

  • 在 MySQL 中,可以通过运算符来获取表结构以外的另一种数据。MySQL 所提供的运算符可以直接对表中数据或字段进行运算,进而实现用户的新需求,增强了 MySQL 的功能。每种数据库都支持 SQL 语句,但是它们也都有各自支持的运算符。我们除了需要学会使用 SQL 语句外,还需要掌握各种运算符。
  • 运算符的分类: 算术运算符、比较运算符、逻辑运算符、位运算符

2. 算术运算符

  • 算术运算符是 SQL 中最基本的运算符,MySQL 支持的运算符包括加、减、乘、除和取余运算,它们是最常用、最简单的一类运算符。下表列出了这些运算符的作用和使用方法。

    运算符 作用 使用方法
    + 加法运算 用于获得一个或多个值的和
    - 减法运算 用于从一个值中减去另一个值
    * 乘法运算 使数字相乘,得到两个或多个值的乘积
    / 除法运算,返回商 用一个值除以另一个值得到商
    %,MOD 求余运算,返回余数 用一个值除以另一个值得到余数
  • 注意事项:

    1. 数学运算中,除数为 0 的除法是没有意义的。所以在除法运算和取余运算中,如果除数为 0,那么返回结果为 NULL

3. 比较运算符

  • 当使用 SELECT 语句进行查询时,MySQL 允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。MySQL 支持的比较运算符如下表所示。

    运算符 作用
    = 等于
    <=> 安全的等于
    <> 或者 != 不等于
    <= 小于等于
    >= 大于等于
    > 大于
    IS NULL 或者 ISNULL 判断一个值是否为空
    IS NOT NULL 判断一个值是否不为空
    BETWEEN AND 判断一个值是否落在两个值之间
  • 等于运算符(=)注意事项:

    1. 若有一个或两个操作数为 NULL,则比较运算的结果为 NULL。
    2. 若两个操作数都是字符串,则按照字符串进行比较。
    3. 若两个操作数均为整数,则按照整数进行比较。
    4. 若一个操作数为字符串,另一个操作数为数字,则 MySQL 可以自动将字符串转换为数字。
  • 安全等于运算符(<=>)注意事项:

    • 当两个操作数均为 NULL 时,其返回值为 1 而不为 NULL;
    • 而当一个操作数为 NULL 时,其返回值为 0 而不为 NULL。

4. 逻辑运算符

  • 逻辑运算符又称为布尔运算符,用来确定表达式的真和假。MySQL中支持的逻辑运算符如下表所示。

    运算符 作用
    NOT 或者 ! 逻辑非
    AND 或者 && 逻辑与
    OR 和 || 逻辑或
    XOR 逻辑异或
  • 注意事项:

    • NOT 的优先级低于 +,因此NOT 1+1相当于NOT(1+1),先计算1+1,然后再进行 NOT 运算,由于操作数不为 0,因此NOT 1+1的结果是 0;
    • 相反,! 的优先级别要高于 +,因此! 1+1相当于(!1)+1,先计算!1结果为 0,再加 1,最后结果为 1。

5. 位运算符

  • 所谓位运算,就是按照内存中的比特位(Bit)进行操作,这是计算机能够支持的最小单位的运算。程序中所有的数据在内存中都是以二进制形式存储的,位运算就是对这些二进制数据进行操作。

  • 位运算一般用于操作整数,对整数进行位运算才有实际的意义。整数在内存中是以补码形式存储的,正数的补码形式和原码形式相同,而负数的补码形式和它的原码形式是不一样的,这一点大家要特别注意;这意味着,对负数进行位运算时,操作的是它的补码,而不是它的原码。

    运算符 说明 使用形式 举例
    | 位或 a | b 5 | 8
    & 位与 a & b 5 & 8
    ^ 位异或 a ^ b 5 ^ 8
    ~ 位取反 ~a ~5
    << 位左移 a << b 5 << 2,表示整数 5 按位左移 2 位
    >> 位右移 a >> b 5 >> 2,表示整数 5 按位右移 2 位
相关推荐
Rookie也要加油21 分钟前
01_SQLite
数据库·sqlite
liuxin3344556625 分钟前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
看山还是山,看水还是。1 小时前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec1 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa1 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke2 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
程序猿小D2 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
小宇成长录2 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份
团儿.3 小时前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
程序猿小D3 小时前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa