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. 多条件优先用括号明确优先级,避免逻辑错误。
相关推荐
金融小白数据分析之路1 小时前
绍兴市镇街echarts 制作
前端·数据库·echarts
桐薇全肯定1 小时前
MySQL学生成绩管理系统实战操作
java·数据库·sql
hellojike1 小时前
free-stockdb本地金融数据库核心设计
数据库·金融
井川廊咏2 小时前
初探性能优化——2个月到4小时的性能提升
jvm·数据库·性能优化
这个DBA有点耶2 小时前
热点行更新:秒杀场景下一条UPDATE语句的锁等待与性能优化
数据库·sql·mysql·性能优化·database·dba
在水一缸2 小时前
深入浅出:Node.js 下一代 ORM 架构设计与实战解析
数据库·微服务·云原生·node.js·orm·架构设计
爱喝水的鱼丶2 小时前
SAP-ABAP:SELECT查询性能优化基础——索引匹配、条件顺序与缓冲机制利用技巧
数据库·性能优化·select·sap·abap·开发交流·交流学习
zhoupenghui1683 小时前
ClickHouse merge引擎详解以及应用
数据库·clickhouse·merge·mergetree
@insist1233 小时前
信息系统管理工程师-任务、标准、EDM 过程与关键域
java·大数据·数据库
qq_366086223 小时前
关于接口路径中中文值解码问题
java·开发语言·数据库