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 位
相关推荐
dazhong20121 小时前
PLSQL 客户端连接 Oracle 数据库配置
数据库·oracle
苹果醋33 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
了一li3 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
码农君莫笑3 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
别致的影分身4 小时前
使用C语言连接MySQL
数据库·mysql
过过过呀Glik4 小时前
在 Ubuntu 上安装 MySQL 的详细指南
mysql·ubuntu
京东零售技术5 小时前
“慢”增长时代的企业数据体系建设:超越数据中台
数据库
sdaxue.com6 小时前
帝国CMS:如何去掉帝国CMS登录界面的认证码登录
数据库·github·网站·帝国cms·认证码
o(╥﹏╥)6 小时前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
阿里嘎多学长7 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器