MySQL 运算符详细说明
目录
1. 算术运算符
2. 比较运算符
3. 逻辑运算符
4. 位运算符
总结
MySQL 运算符是用于执行计算、比较和逻辑操作的符号或关键词,广泛用于 SQL 查询语句中。它们帮助实现数据筛选、计算和组合等功能。下面我将分类详细说明各类运算符,包括定义、语法和示例代码。每个类别都使用清晰的解释和 SQL 代码示例来逐步说明。
1. 算术运算符
算术运算符用于数值计算,包括加、减、乘、除和取模操作。这些运算符支持整数、浮点数等数值类型。
- 加法运算符 ($+$):用于数值相加。例如,$a + b$ 表示两个值求和。
- 减法运算符 ($-$):用于数值相减。例如,$a - b$ 表示减去一个值。
- 乘法运算符 ($*$):用于数值相乘。例如,$a \times b$ 表示两个值相乘。
- 除法运算符 ($/$):用于数值相除。例如,$a / b$ 表示除以一个值(注意:除数不能为零)。
- 取模运算符 ($%$):用于求余数。例如,$a % b$ 表示 $a$ 除以 $b$ 的余数。
示例 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 代码:
-- 筛选年龄大于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 代码:
-- 筛选年龄在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 代码:
-- 对权限字段进行位操作
SELECT user_id, permissions & 1 AS can_read FROM user_permissions;
总结
MySQL 运算符是 SQL 查询的核心工具,能高效处理数据计算、比较和逻辑组合。使用时需注意数据类型匹配(如数值比较要求数值类型),避免常见错误(如除零或 NULL 处理)。建议在实际查询中结合函数(如 CONCAT() 用于字符串连接)来增强功能。通过以上分类和示例,您可以逐步掌握如何应用这些运算符优化数据库操作。
