SQL 常用运算符操作方法总结

SQL 常用运算符操作方法总结

SQL 运算符是用来对数据进行计算、比较、逻辑判断、范围匹配 等操作的核心工具,主要分为算术、比较、逻辑、范围、模糊匹配、集合、NULL判断七大类,下面是最常用、最实用的操作方法。


一、算术运算符(用于数值计算)

作用:对数字类型字段做加减乘除、取余运算

运算符 含义 示例
+ 加法 SELECT price + 10 FROM goods;
- 减法 SELECT price - 5 FROM goods;
* 乘法 SELECT price * num AS total FROM order;
/ 除法 SELECT total / num AS avg_price FROM order;
% 取余(模运算) SELECT id % 2 FROM user;(判断奇偶)

注意:

  1. 仅支持数字列(int、float、decimal),字符串/日期不能直接算术运算;
  2. 除法结果默认保留小数,取余只针对整数。

二、比较运算符(用于条件筛选 WHERE)

作用:判断两个值的大小/相等关系,返回真/假,用于过滤数据

运算符 含义 示例
= 等于 WHERE age = 18
!= / <> 不等于 WHERE status != 0
> 大于 WHERE score > 60
< 小于 WHERE price < 100
>= 大于等于 WHERE create_time >= '2024-01-01'
<= 小于等于 WHERE num <= 5

核心用法:

  • 字符串/日期比较:直接用=><(日期按时间先后比较);
  • 区分大小写:多数数据库默认不区分,需特殊配置。

三、逻辑运算符(多条件组合)

作用:将多个比较条件组合,实现复杂筛选

运算符 含义 用法
AND 且(所有条件都满足) WHERE age>18 AND score>=90
OR 或(任意一个满足) WHERE city='北京' OR city='上海'
NOT 非(取反) WHERE NOT status=1

优先级: NOT > AND > OR,不确定时用括号包裹条件。


四、范围运算符(区间/枚举匹配)

1. BETWEEN ... AND ...

作用:匹配闭区间内的值(包含起始和结束值)

sql 复制代码
-- 筛选年龄18-30岁(包含18、30)
WHERE age BETWEEN 18 AND 30
-- 日期范围
WHERE create_time BETWEEN '2024-01-01' AND '2024-12-31'

2. IN

作用:匹配枚举列表中的任意一个值(替代多个 OR)

sql 复制代码
-- 筛选北京、上海、广州的用户
WHERE city IN ('北京','上海','广州')
-- 数字枚举
WHERE status IN (1,2,3)

五、模糊匹配运算符(LIKE

作用:对字符串 进行模糊查询,必须搭配通配符使用

通配符 含义
% 匹配任意多个字符(0个、1个、多个)
_ 匹配单个字符

常用示例:

sql 复制代码
-- 1. 以"张"开头
WHERE name LIKE '张%'
-- 2. 以"科技"结尾
WHERE company LIKE '%科技'
-- 3. 包含"电商"
WHERE name LIKE '%电商%'
-- 4. 第二个字符是"小"
WHERE name LIKE '_小%'

注意: LIKE 不使用通配符时,等价于 =(精确匹配)。


六、NULL 判断运算符(特殊重点)

作用:判断字段是否为空值(NULL)绝对不能用 = 判断 NULL

运算符 含义 示例
IS NULL 字段为空 WHERE email IS NULL
IS NOT NULL 字段不为空 WHERE phone IS NOT NULL

错误写法: WHERE email = NULL(永远不生效)


七、集合运算符(多结果集合并)

作用:合并两个及以上 SELECT 查询结果(要求列数、类型一致)

运算符 含义
UNION 合并结果,自动去重
UNION ALL 合并结果,保留重复值(效率更高)

示例:

sql 复制代码
-- 合并两个表的用户名
SELECT name FROM user1
UNION ALL
SELECT name FROM user2

快速记忆与使用场景

  1. 计算 → 用算术运算符(+ - * / %
  2. 筛选条件 → 比较运算符(= > < !=
  3. 多条件组合AND/OR/NOT
  4. 区间/枚举BETWEEN / IN
  5. 模糊查询LIKE + %/_
  6. 空值判断IS NULL / IS NOT NULL
  7. 结果合并UNION / UNION ALL

总结

  1. 算术运算符仅用于数值计算 ,比较/逻辑运算符是 WHERE 筛选核心;
  2. NULL 必须用 IS NULL 判断,不能用 =
  3. 模糊查询必配通配符,% 匹配任意字符,_ 匹配单个字符;
  4. 多条件优先用括号明确优先级,避免逻辑错误。
相关推荐
布莱克60511 分钟前
理解索引:从概念到实践
数据库·mysql
我不是疯子是傻子3 小时前
Qt CAN通信周期发送抖动?实测定时器精度校准与时间戳补偿方案
开发语言·数据库·qt
这个DBA有点耶4 小时前
数据库迁移怎么做到“零翻车“:金仓 KDMS/KDTS/KFS 工具链实测
数据库·架构·dba
2501_937860945 小时前
MySQL联合查询(多表查询)
数据库·mysql
名字还没想好☜5 小时前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
迷迭香yy5 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
SelectDB6 小时前
抖音集团 实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB6 小时前
网易 日志与时序数据分析:Apache Doris / SelectDB 的技术能力与实践
数据库
weixin_539446787 小时前
Navicat Premium 17报缺少ODBC驱动
数据库
哦虎!7 小时前
【数据库】事务
java·数据库·mysql