SQL 语句使用案例大全:从入门到精通
SQL(Structured Query Language)是数据库操作的核心语言。无论你是开发人员、数据分析师还是运维工程师,掌握 SQL 的各种使用技巧都能让你事半功倍。
本文整理了 SQL 语句的各种实用案例,从基础查询到高级技巧,涵盖日常开发中的常见场景。建议收藏备用!
一、基础查询
1.1 基本 SELECT
1.2 WHERE 条件查询
1.3 ORDER BY 和 LIMIT
二、连接查询(JOIN)
2.1 内连接(INNER JOIN)
内连接只返回两个表中匹配的记录。
2.2 左连接(LEFT JOIN)
左连接返回左表的所有记录,右表无匹配则为 NULL。常用于查找"不存在"的记录。
2.3 多表连接
三、聚合函数与分组
3.1 基础聚合函数
SQL 提供 5 个常用聚合函数:
COUNT():统计行数SUM():求和AVG():平均值MAX():最大值MIN():最小值
3.2 GROUP BY 分组
配合聚合函数使用,按指定列分组统计。
3.3 HAVING 过滤分组
HAVING 用于过滤 GROUP BY 后的分组结果,WHERE 无法在分组后过滤。
四、子查询
4.1 WHERE 子查询
在 WHERE 条件中使用子查询结果。
4.2 SELECT 子查询
在 SELECT 列表中嵌入子查询,常用于统计关联数据。
4.3 FROM 子查询(派生表)
将子查询结果作为临时表使用。
4.4 EXISTS 子查询
判断子查询是否返回结果,效率通常优于 IN。
五、数据操作(DML)
5.1 INSERT 插入数据
5.2 UPDATE 更新数据
5.3 DELETE 删除数据
⚠️ 重要提示:生产环境执行 UPDATE/DELETE 前,务必先用 SELECT 验证条件!
六、索引使用
6.1 创建索引
6.2 索引使用原则
| 场景 | 建议 |
|---|---|
| WHERE 条件列 | ✅ 适合建索引 |
| JION 连接列 | ✅ 适合建索引 |
| ORDER BY 列 | ✅ 适合建索引 |
| 低基数列(如性别) | ❌ 不建议建索引 |
| 频繁更新的列 | ❌ 谨慎建索引 |
| 大文本列 | ❌ 不适合建索引 |
七、窗口函数
窗口函数是 SQL 的高级特性,支持在分组的同时保留原始行数据。
7.1 排名函数
ROW_NUMBER():连续行号(1,2,3,4...)RANK():跳跃排名(1,2,2,4...)DENSE_RANK():密集排名(1,2,2,3...)
7.2 分析函数
LAG():访问前一行数据LEAD():访问后一行数据FIRST_VALUE():窗口内第一个值LAST_VALUE():窗口内最后一个值SUM() OVER:累计求和
八、CTE(公共表表达式)
CTE 让复杂查询更清晰,支持递归查询。
8.1 基础 CTE
8.2 递归 CTE
适用于层级结构查询,如组织架构、分类树等。
九、性能优化
9.1 常见性能问题
9.2 优化建议
- 使用 EXPLAIN 分析:查看查询执行计划,找出性能瓶颈
- 避免全表扫描:确保 WHERE 条件使用索引
- 合理分页:大表分页使用
LIMIT offset, size或基于 ID 分页 - 批量操作:多条 INSERT/UPDATE 合并执行
- 定期维护:OPTIMIZE TABLE、ANALYZE TABLE
- 读写分离:复杂查询走从库
十、实战案例
10.1 用户订单统计
10.2 连续登录用户
10.3 销售排行榜(按月份)
总结
本文涵盖了 SQL 语句的核心使用场景:
- ✅ 基础查询与条件过滤
- ✅ 多表连接与聚合统计
- ✅ 子查询与 CTE
- ✅ 数据操作(INSERT/UPDATE/DELETE)
- ✅ 索引优化与性能调优
- ✅ 窗口函数高级应用
学习建议:
- 先在测试环境练习,熟悉语法
- 生产环境执行前先用 EXPLAIN 分析
- 复杂查询先写子查询,再优化为 JOIN
- 定期复习和总结,形成自己的 SQL 模板库
🔗 相关链接
欢迎收藏转发,有问题欢迎留言讨论!💪
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。





