wonderful-sql
January 10, 2026 · View on GitHub
Follow me,从 0 到 1 掌握 SQL。
如果这个项目对您有帮助,欢迎在 GitHub 上为我们点个 Star 并分享给更多人 ❤️
项目由来
在当今数字化浪潮下,掌握 SQL 已成为众多职场人不可或缺的技能。无论是数据分析、开发测试,还是产品管理与系统维护,SQL 都发挥着重要作用。然而,学校课程往往难以系统覆盖其实践应用,这使很多人在面试与工作中面临挑战。
为此,我们基于多年学习与实践经验,借鉴《SQL基础教程》经典内容,并融入团队一线经验与心得,整理形成这份开源课程。受 Datawhale 开源精神启发,我们希望借此项目,帮助更多人高效掌握 SQL,从容应对职场需求。
为兼顾易用性与普及度,本课程选用 MySQL 数据库展开讲解,具体大纲及各章练习题可参见下方目录。最后部分还整理了常见的 SQL 面试题,以帮助学习者在完成课程后,能更从容地应对相关面试或日常工作需求。
课程相关材料均存放于 ./materials 目录。如有疑问、建议或发现勘误,欢迎通过提交 Issue 或 Pull Request 与我们联系,我们将及时处理并反馈。
特别说明
1、原则上所有 task 打卡时需要提供文章链接(总结学习内容,完成课后作业),task06 要求必须提交文章链接,不提交视为水卡。
2、组队学习期间关闭参考答案访问权限,其他时段开放访问权限(组队时段大概是每个月后两周,详见 Datawhale 公众号当月组队学习内容介绍)。
3、仓库下载便捷方式:采用 Git Bash 工具,执行命令 git clone https://github.com/datawhalechina/wonderful-sql 可以较为快速的下载本仓库到本地,然后使用 markdown 工具打开(比如 Typora)。
4、Navicat Premium Lite 已开放订阅,可以免费使用,下载地址: https://www.navicat.com.cn/download/navicat-premium-lite
课程目录
-
ch00:绪论 - 环境搭建
- :white_check_mark: 1. MySQL 8.0 的安装
- :white_check_mark: 2. 连接 MySQL 并执行 SQL 查询
-
ch01:初识数据库
-
ch02:基础查询与排序
- :white_check_mark: 2.1 SELECT语句基础
- :white_check_mark: 2.2 算术运算符和比较运算符
- :white_check_mark: 2.3 逻辑运算符
- :white_check_mark: 2.4 对表进行聚合查询
- :white_check_mark: 2.5 对表进行分组
- :white_check_mark: 2.6 为聚合结果指定条件
- :white_check_mark: 参考答案链接
-
ch03:复杂一点的查询
- :white_check_mark: 3.1 视图
- :white_check_mark: 3.2 子查询
- :white_check_mark: 3.3 各种各样的函数
- :white_check_mark: 3.4 谓词
- :white_check_mark: 3.5 CASE 表达式
- :white_check_mark: 参考答案链接
-
ch04:集合运算
- :white_check_mark: 4.1 表的加减法
- :white_check_mark: 4.2 连结(JOIN)
- :white_check_mark: 参考答案链接
-
ch05:SQL高级处理
- :white_check_mark: 5.1 窗口函数
- :white_check_mark: 5.2 窗口函数种类
- :white_check_mark: 5.3 窗口函数的的应用 - 计算移动平均
- :white_check_mark: 5.4 GROUPING运算符
- :white_check_mark: 5.5 存储过程和函数
- :white_check_mark: 5.6 预处理声明 PREPARE Statement
- :white_check_mark: 参考答案链接
-
ch06:决胜秋招
-
Section A
- :white_check_mark: 练习一: 各部门工资最高的员工(难度:中等)
- :white_check_mark: 练习二: 换座位(难度:中等)
- :white_check_mark: 练习三: 分数排名(难度:中等)
- :white_check_mark: 练习四:连续出现的数字(难度:中等)
- :white_check_mark: 练习五:树节点 (难度:中等)
- :white_check_mark: 练习六:至少有五名直接下属的经理 (难度:中等)
- :white_check_mark: 练习七:查询回答率最高的问题 (难度:中等)
- :white_check_mark: 练习八:各部门前3高工资的员工(难度:中等)
- :white_check_mark: 练习九:平面上最近距离 (难度: 困难)
- :white_check_mark: 练习十:行程和用户(难度:困难)
-
Section B
- :white_check_mark: 练习一: 行转列(难度:中等))
- :white_check_mark: 练习二: 列转行(难度:中等)
- :white_check_mark: 练习三: 谁是明星带货主播?(难度:中等)
- :white_check_mark: 练习四: MySQL 中如何查看sql语句的执行计划?可以看到哪些信息?(难度:中等)
- :white_check_mark: 练习五: 解释一下 SQL 数据库中 ACID 是指什么?(难度:中等)
-
Section C
- :white_check_mark: 练习一: 行转列(难度:中等)
- :white_check_mark: 练习二: 列转行(难度:困难)
- :white_check_mark: 练习三: 连续登录(难度:困难)
- :white_check_mark: 练习四: 用户购买商品推荐(难度:困难)
- :white_check_mark: 练习五: hive 数据倾斜的产生原因及优化策略(难度:困难)
- :white_check_mark: 练习六: LEFT JOIN 是否可能会出现多出的行?为什么?
- :white_check_mark: 附加题: 写一写本次学习的收获。
-
:white_check_mark: 参考答案链接
-
常见问题
-
在线教程页面无法打开:
测试中存在部分人打不开在线教程的情况。
部分小伙伴反馈尝试切换浏览器后可以正常打开了,还可以参考 提高国内访问 GitHub 的速度的 9 种方案 中介绍的方法尝试打开。
-
无法加载图片的解决办法:
也可以尝试修改host文件看下是否能解决。
致谢
感谢以下Datawhale成员对项目推进作出的贡献(排名不分先后):
| 成员 | 个人简介及贡献 | 个人主页 |
|---|---|---|
| 王复振 | 河北科技大学,Datawhale成员,项目负责人,Task00/01/03/05/06内容构建 | Github |
| 杨煜 | 数据分析师,Datawhale成员,Task05/06内容构建 | |
| 闫钟峰 | 图书馆员,Datawhale成员,Task00/04内容构建 | |
| 杨梦迪 | 上海大学硕士,Datawhale成员,Task02内容构建 | |
| 苏鹏 | 东北大学硕士,Datawhale成员,Task00/01/03内容构建 | Github |
| 红星 | 广东工业大学,Datawhale成员,内测小组成员 | |
| 张晋 | 北京理工大学,Datawhale成员,内测小组成员 | |
| 汪健麟 | 电子科技大学硕士,Datawhale成员,内测小组成员 |
关注我们
"Datawhale是一个专注AI领域的开源组织,以“for the learner,和学习者一起成长”为愿景,构建对学习者最有价值的开源学习社区。关注我们,一起学习成长。"
