目录
[1. 算术运算符](#1. 算术运算符)
[2. 比较运算符](#2. 比较运算符)
[3. 逻辑运算符](#3. 逻辑运算符)
[4. 位运算符](#4. 位运算符)
MySQL 运算符是用于执行计算、比较和逻辑操作的符号或关键词,广泛用于 SQL 查询语句中。它们帮助实现数据筛选、计算和组合等功能。下面我将分类详细说明各类运算符,包括定义、语法和示例代码。每个类别都使用清晰的解释和 SQL 代码示例来逐步说明。
1. 算术运算符
算术运算符用于数值计算,包括加、减、乘、除和取模操作。这些运算符支持整数、浮点数等数值类型。
- 加法运算符 (+):用于数值相加。例如,a + b 表示两个值求和。
- 减法运算符 (-):用于数值相减。例如,a - b 表示减去一个值。
- 乘法运算符 (\*):用于数值相乘。例如,a \\times b 表示两个值相乘。
- 除法运算符 (/):用于数值相除。例如,a / b 表示除以一个值(注意:除数不能为零)。
- 取模运算符 (%):用于求余数。例如,a % b 表示 a 除以 b 的余数。
示例 SQL 代码:
sql
-- 计算员工工资增加10%后的值
SELECT name, salary, salary * 1.10 AS new_salary FROM employees;
-- 求订单数量的余数
SELECT order_id, quantity % 5 AS remainder FROM orders;
2. 比较运算符
比较运算符用于比较两个值的大小或相等性,返回布尔值(TRUE 或 FALSE)。常用于 WHERE 子句中进行条件筛选。
- 等于运算符 (=):比较两个值是否相等。例如,a = b 表示 a 等于 b。
- 不等于运算符 (!= 或 \<\>):比较两个值是否不相等。例如,a != b 表示 a 不等于 b。
- 大于运算符 (\>):比较左值是否大于右值。例如,a \> b 表示 a 大于 b。
- 小于运算符 (\<):比较左值是否小于右值。例如,a \< b 表示 a 小于 b。
- 大于等于运算符 (\>=):比较左值是否大于或等于右值。例如,a \\geq b 表示 a 大于或等于 b。
- 小于等于运算符 (\<=):比较左值是否小于或等于右值。例如,a \\leq b 表示 a 小于或等于 b。
- BETWEEN 运算符:检查值是否在指定范围内。例如,a BETWEEN b AND c 表示 a 在 b 和 c 之间。
- LIKE 运算符:用于模式匹配(通配符:% 表示任意字符序列,_ 表示单个字符)。例如,name LIKE 'J%' 匹配以 "J" 开头的名称。
- IN 运算符:检查值是否在列表中。例如,a IN (b, c, d) 表示 a 等于 b、c 或 d。
- IS NULL 运算符:检查值是否为 NULL。例如,a IS NULL 表示 a 是空值。
示例 SQL 代码:
sql
-- 筛选年龄大于30的员工
SELECT * FROM employees WHERE age > 30;
-- 查找名称以 "A" 开头的客户
SELECT * FROM customers WHERE name LIKE 'A%';
-- 检查订单状态在指定列表中
SELECT * FROM orders WHERE status IN ('shipped', 'delivered');
3. 逻辑运算符
逻辑运算符用于组合多个条件,返回布尔值。常用于 WHERE 或 HAVING 子句中构建复杂查询。
- AND 运算符:所有条件都为真时返回真。例如,a AND b 表示 a 和 b 同时为真。
- OR 运算符:至少一个条件为真时返回真。例如,a OR b 表示 a 或 b 为真。
- NOT 运算符:反转条件。例如,NOT a 表示 a 不为真。
示例 SQL 代码:
sql
-- 筛选年龄在25到35之间且工资大于5000的员工
SELECT * FROM employees WHERE age BETWEEN 25 AND 35 AND salary > 5000;
-- 查找状态为 "active" 或 "pending" 的用户
SELECT * FROM users WHERE status = 'active' OR status = 'pending';
4. 位运算符
位运算符用于对二进制位进行操作,较少在常规查询中使用,但适用于低级数据处理。
- 位与运算符 (\&):对位进行 AND 操作。例如,a & b 表示按位与。
- 位或运算符 (\|):对位进行 OR 操作。例如,a | b 表示按位或。
- 位异或运算符 (\^):对位进行 XOR 操作。例如,a ^ b 表示按位异或。
- 位取反运算符 (\~):反转所有位。例如,~a 表示按位取反。
- 左移运算符 (\<\<):将位左移指定位数。例如,a << n 表示左移 n 位。
- 右移运算符 (\>\>):将位右移指定位数。例如,a >> n 表示右移 n 位。
示例 SQL 代码:
sql
-- 对权限字段进行位操作
SELECT user_id, permissions & 1 AS can_read FROM user_permissions;
总结
MySQL 运算符是 SQL 查询的核心工具,能高效处理数据计算、比较和逻辑组合。使用时需注意数据类型匹配(如数值比较要求数值类型),避免常见错误(如除零或 NULL 处理)。建议在实际查询中结合函数(如 CONCAT() 用于字符串连接)来增强功能。通过以上分类和示例,您可以逐步掌握如何应用这些运算符优化数据库操作。