文章目录
-
- [1. 运算符概述](#1. 运算符概述)
- [2. 算术运算符](#2. 算术运算符)
- [3. 比较运算符](#3. 比较运算符)
- [4. 逻辑运算符](#4. 逻辑运算符)
- [5. 位运算符](#5. 位运算符)
1. 运算符概述
- 在 MySQL 中,可以通过运算符来获取表结构以外的另一种数据。MySQL 所提供的运算符可以直接对表中数据或字段进行运算,进而实现用户的新需求,增强了 MySQL 的功能。每种数据库都支持 SQL 语句,但是它们也都有各自支持的运算符。我们除了需要学会使用 SQL 语句外,还需要掌握各种运算符。
- 运算符的分类: 算术运算符、比较运算符、逻辑运算符、位运算符
2. 算术运算符
-
算术运算符是 SQL 中最基本的运算符,MySQL 支持的运算符包括加、减、乘、除和取余运算,它们是最常用、最简单的一类运算符。下表列出了这些运算符的作用和使用方法。
运算符 作用 使用方法 + 加法运算 用于获得一个或多个值的和 - 减法运算 用于从一个值中减去另一个值 * 乘法运算 使数字相乘,得到两个或多个值的乘积 / 除法运算,返回商 用一个值除以另一个值得到商 %,MOD 求余运算,返回余数 用一个值除以另一个值得到余数 -
注意事项:
- 数学运算中,除数为 0 的除法是没有意义的。所以在除法运算和取余运算中,如果除数为 0,那么返回结果为 NULL。
3. 比较运算符
-
当使用 SELECT 语句进行查询时,MySQL 允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。MySQL 支持的比较运算符如下表所示。
运算符 作用 = 等于 <=> 安全的等于 <> 或者 != 不等于 <= 小于等于 >= 大于等于 > 大于 IS NULL 或者 ISNULL 判断一个值是否为空 IS NOT NULL 判断一个值是否不为空 BETWEEN AND 判断一个值是否落在两个值之间 -
等于运算符(=)注意事项:
- 若有一个或两个操作数为 NULL,则比较运算的结果为 NULL。
- 若两个操作数都是字符串,则按照字符串进行比较。
- 若两个操作数均为整数,则按照整数进行比较。
- 若一个操作数为字符串,另一个操作数为数字,则 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。
- NOT 的优先级低于 +,因此
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 位