mysql运算符
栏目:
mysql
发布时间:2024-11-22
MySQL运算符教程
在MySQL中,运算符用于执行各种操作,如算术运算、比较、逻辑运算、位运算等。这些运算符使得我们可以在查询中进行数据计算、条件判断和数据操作。本教程将详细介绍MySQL中的各种运算符及其用法。
一、算术运算符
算术运算符用于执行数学运算,包括加法、减法、乘法、除法和取模运算。
+
:加法-
:减法*
:乘法/
:除法%
:取模(余数)
示例:
SELECT 5 + 3; -- 输出:8
SELECT 10 - 4; -- 输出:6
SELECT 7 * 2; -- 输出:14
SELECT 10 / 2; -- 输出:5
SELECT 10 % 3; -- 输出:1
二、比较运算符
比较运算符用于比较两个值,并返回布尔值(TRUE或FALSE)。
=
:等于<>
或!=
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于<=>
:NULL安全等于(如果两个值都是NULL,则返回TRUE)
示例:
SELECT 5 = 5; -- 输出:TRUE
SELECT 5 <> 3; -- 输出:TRUE
SELECT 10 > 5; -- 输出:TRUE
SELECT 3 < 7; -- 输出:TRUE
SELECT 5 >= 5; -- 输出:TRUE
SELECT 8 <= 10; -- 输出:TRUE
SELECT NULL <=> NULL; -- 输出:TRUE
三、逻辑运算符
逻辑运算符用于结合布尔表达式,并返回布尔结果。
AND
:逻辑与(两个表达式都为TRUE时返回TRUE)OR
:逻辑或(至少一个表达式为TRUE时返回TRUE)NOT
:逻辑非(将表达式的布尔值取反)
示例:
SELECT 1 = 1 AND 2 = 3; -- 输出:FALSE
SELECT 1 = 1 OR 2 = 3; -- 输出:TRUE
SELECT NOT (1 = 2); -- 输出:TRUE
四、位运算符
位运算符用于对二进制位进行操作。
&
:按位与|
:按位或^
:按位异或~
:按位非<<
:左移>>
:右移
示例:
SELECT 5 & 3; -- 输出:1(二进制:0101 & 0011 = 0001)
SELECT 5 | 3; -- 输出:7(二进制:0101 | 0011 = 0111)
SELECT 5 ^ 3; -- 输出:6(二进制:0101 ^ 0011 = 0110)
SELECT ~5; -- 输出:-6(二进制:~0101 = 1010,在有符号二进制补码表示中)
SELECT 2 << 1; -- 输出:4(二进制:0010 << 1 = 0100)
SELECT 4 >> 1; -- 输出:2(二进制:0100 >> 1 = 0010)
注意:位运算符的结果可能受MySQL存储整数的方式(如有符号或无符号)影响。
五、其他运算符
- 赋值运算符:
=
用于将值赋给变量或列。 - NULL运算符:
IS NULL
和IS NOT NULL
用于检查值是否为NULL。 - 范围运算符:
BETWEEN ... AND ...
用于检查值是否在某个范围内(包括边界值)。 - IN运算符:用于检查值是否在一组给定的值中。
- LIKE运算符:用于模式匹配,通常与通配符
%
和_
一起使用。 - REGEXP运算符:用于正则表达式匹配。
示例:
-- 赋值运算符(在UPDATE语句中使用)
UPDATE employees SET salary = salary + 1000 WHERE department = 'Sales';
-- NULL运算符
SELECT * FROM employees WHERE commission IS NULL;
-- 范围运算符
SELECT * FROM products WHERE price BETWEEN 10 AND 50;
-- IN运算符
SELECT * FROM customers WHERE country IN ('USA', 'Canada', 'UK');
-- LIKE运算符
SELECT * FROM products WHERE product_name LIKE 'A%'; -- 查找以'A'开头的所有产品
-- REGEXP运算符
SELECT * FROM employees WHERE name REGEXP '^[A-J]'; -- 查找名字以A到J开头的员工
六、注意事项
- 运算符的优先级决定了在没有括号的情况下哪个运算符先被计算。例如,乘法和除法优先于加法和减法。
- 使用括号可以强制改变运算符的默认优先级。
- 当使用比较运算符和逻辑运算符时,要注意NULL值的处理。NULL在比较中通常被视为未知,因此任何与NULL的比较都会返回NULL(除了
IS NULL
和IS NOT NULL
)。
通过遵循这个教程,你可以掌握MySQL中的各种运算符及其用法,从而在查询中进行各种数据计算、条件判断和数据操作。
本文地址:https://www.tides.cn/p_mysql-operator