1️⃣前言
- 数据库中的表结构一旦建立后,表中的数据就有了意义
- 通过MySQL运算符进行运算,我们可以获得表结构以外的另一种数据
MySQL支持多种运算符,包括算术运算符、比较运算符、逻辑运算符和位运算符。这些运算符在SQL查询中非常有用,可以帮助我们更有效地处理数据。
下面,我们就来看看各种运算符的特点!
2️⃣算术运算符
MySQL支持的算术运算符包括加(+)、减(-)、乘(*)、除(/)和取余(%)。
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
✨备注:
- 当进行除法运算时,结果会是一个浮点数,即使两个操作数都是整数。
- 当进行取余运算时,结果的符号与被除数的符号相同。
💡举例:
SELECT 10 + 2; -- 结果是 12
SELECT 10 - 2; -- 结果是 8
SELECT 10 * 2; -- 结果是 20
SELECT 10 / 2; -- 结果是 5.0000
SELECT 10 % 3; -- 结果是 1
3️⃣比较运算符
MySQL支持的比较运算符包括等于(=)、不等于(<> 或 !=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等。
符号 | 含义 |
---|---|
= | 等于 |
<=> | 当两个操作数均为NULL时,返回1 |
<> 或 != | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
IS NULL | 是否为NULL |
IS NOT NULL | 是否不为NULL |
BETWEEN AND | 区间,在两值之间 |
IN | 判断值是否在列表中 |
NOT IN | 判断值是否不在列表中 |
LIKE | 通配符匹配 |
REGEXP | 正则表达式匹配 |
✨备注:
MySQL
允许用户对表达式的两侧的操作数进行比较- 如果比较的结果为真,则返回
1
- 结果为假则返回
0
- 如果比较结果不确定,则返回
NULL
NULL
不能用于比较,会直接返回NULL
💡举例:
SELECT 1 <=> NULL; -- 结果是 0
SELECT NULL <=> NULL; -- 结果是 1
SELECT 1 = NULL; -- 结果是 NULL
SELECT 1 IS NULL; -- 结果是 0
SELECT NULL IS NULL; -- 结果是 1
SELECT 5 BETWEEN 1 AND 10; -- 结果是 1
SELECT 5 IN (1, 2, 3, 4, 5); -- 结果是 1
SELECT 5 NOT IN (1, 2, 3, 4); -- 结果是 1
SELECT 'abc' LIKE 'a%'; -- 结果是 1
SELECT 'abc' REGEXP '^a.*'; -- 结果是 1
4️⃣逻辑运算符
MySQL支持的逻辑运算符包括AND、OR、NOT和XOR。
符号 | 含义 |
---|---|
! 或 NOT | 逻辑非(真变假,假变真) |
&& 或 AND | 逻辑与(所有条件满足时才为真) |
|| 或OR | 逻辑或(有一个条件为真就是真) |
XOR | 逻辑异或(不同为真,相同为假) |
✨备注:
- 逻辑运算符在MySQL中主要用于条件判断,它们返回的结果是布尔值,即真(1)或假(0)。
NOT NULL
的返回值为NULL
💡举例:
SELECT NOT TRUE; -- 结果是 0
SELECT TRUE AND FALSE; -- 结果是 0
SELECT TRUE OR FALSE; -- 结果是 1
SELECT TRUE XOR FALSE; -- 结果是 1
SELECT TRUE XOR TRUE; -- 结果是 0
5️⃣位运算符
MySQL支持的位运算符包括按位与(&)、按位或(|)、按位异或(^)、按位非(~)、左移(<<)和右移(>>)。
符号 | 含义 |
---|---|
~ | 按位取反 |
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
<< | 按位左移 |
>> | 按位右移 |
✨备注: |
- 位运算符在位级别上操作数,对二进制位进行操作。
~
是按位取反运算符,它会将每个位从0变为1,或从1变为0。&
是按位与运算符,只有当两个位都为1时,结果位才为1。|
是按位或运算符,只要有一个位为1,结果位就为1。^
是按位异或运算符,当两个位不同(一个为1,一个为0)时,结果位为1;当两个位相同(都为1或都为0)时,结果位为0。<<
是按位左移运算符,它将数的二进制位向左移动指定的位数,右边用0填充。>>
是按位右移运算符,它将数的二进制位向右移动指定的位数,左边用0填充。
💡举例:
SELECT ~1; -- 结果是 -2
SELECT 1 & 1; -- 结果是 1
SELECT 1 | 0; -- 结果是 1
SELECT 1 ^ 0; -- 结果是 1
SELECT 1 << 2; -- 结果是 4
SELECT 4 >> 2; -- 结果是 1
6️⃣总结
在这篇文章中,我们介绍了MySQL中的各种运算符,包括算术运算符、比较运算符、逻辑运算符和位运算符。这些运算符在SQL查询中非常有用,可以帮助我们更有效地处理数据。