MySQL 运算符详细说明

目录

[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 表示 abc 之间。
  • LIKE 运算符:用于模式匹配(通配符:% 表示任意字符序列,_ 表示单个字符)。例如,name LIKE 'J%' 匹配以 "J" 开头的名称。
  • IN 运算符:检查值是否在列表中。例如,a IN (b, c, d) 表示 a 等于 bcd
  • 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 表示 ab 同时为真。
  • OR 运算符:至少一个条件为真时返回真。例如,a OR b 表示 ab 为真。
  • 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() 用于字符串连接)来增强功能。通过以上分类和示例,您可以逐步掌握如何应用这些运算符优化数据库操作。

相关推荐
Dream_言十4 小时前
光通信|高效动态的自由空间-光纤CVB通信
学习·论文笔记·1024程序员节
诚实可靠王大锤4 小时前
react-native实现多列表左右滑动+滚动TabBar悬停
javascript·react native·react.js·1024程序员节
Cherry Zack4 小时前
FastAPI 入门指南 :基础概念与核心特性
开发语言·python·fastapi·1024程序员节
<但凡.4 小时前
Linux修炼:基础IO(二)
linux·运维·服务器·1024程序员节
2301_803554525 小时前
std::unique_lockstd::mutex lock(mtx) 深度详解
1024程序员节
黑翼杰克斯5 小时前
关于buildroot文件系统中rootfs的内容,该怎么增删(瑞芯微rv1126b)
linux·音视频·1024程序员节
wodongx1235 小时前
从一开始部署Android项目Sonarqube的自动化扫码+通知+增量扫描功能(Win环境、Docker,基于Jenkins)
运维·docker·jenkins·1024程序员节
豆沙沙包?5 小时前
2025年--Lc216- 400. 第 N 位数字(找规律)-Java版
1024程序员节
shepherd1265 小时前
破局延时任务(上):为什么选择Spring Boot + DelayQueue来自研分布式延时队列组件?
java·spring boot·后端·1024程序员节