SQL
数据与 AI · 预计 2-4 周 · 4 阶段
SQL 是从数据中取数的核心技能。路线图从单表查询起步,逐步掌握多表连接、聚合分组、窗口函数与查询优化,最后理解数据建模,让你能独立完成从取数到分析的完整链路。
学后可投:数据分析师数据工程师后端工程师
学习进度:已完成 0 / 4 阶段0%
下一阶段目标:查询基础(完成当前阶段后自动推进)
学习路线图按顺序学完每一阶段
点击阶段节点直达学习内容;绿色=已完成,彩色=当前阶段
1
当前阶段查询基础
2-3 天难度 入门
核心知识点
SELECT / WHERE / ORDER BYLIMIT 与去重 DISTINCTLIKE / IN / BETWEENNULL 与空值处理
本阶段学习内容
要点速记
- SELECT 执行顺序:FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
- NULL 不是 0:判断用 IS NULL / IS NOT NULL
- COUNT(DISTINCT col) 统计唯一值个数
- 字符串单引号,列名反引号
本阶段练习题(点击选项作答)
1. SQL 执行顺序正确的是?
2. 查找 phone 为空的行正确写法是?
练习任务
- 在 SQLZoo 完成前 3 个模块
- 对一个练习库写出 20 条常用查询
本阶段验收标准
SQLZoo 前三模块通关,对练习库写出 20 条常用查询
2
连接与聚合
3-5 天难度 初级
核心知识点
INNER / LEFT / RIGHT JOINGROUP BY 与聚合函数HAVING 与 WHERE 区别子查询与 EXISTS
本阶段学习内容
要点速记
- LEFT JOIN 保留左表全部,右表无匹配补 NULL
- WHERE 分组前过滤行,HAVING 分组后过滤组
- 聚合:COUNT/SUM/AVG/MAX/MIN + GROUP BY
- 子查询/CTE 超过两层就拆,可读性优先
本阶段练习题(点击选项作答)
1. 统计每个部门人数且只显示 >5 人的部门,正确组合是?
2. LEFT JOIN 的特点?
练习任务
- 用 JOIN 实现多表关联查询(订单-用户-商品)
- 完成 LeetCode 数据库题库简单题 20 道
本阶段验收标准
用 JOIN 完成订单-用户-商品多表查询;LeetCode 简单题 20 道
3
窗口函数与优化
4-7 天难度 中级
核心知识点
ROW_NUMBER / RANK / DENSE_RANKSUM / AVG OVER 窗口索引原理与 EXPLAIN慢查询优化思路
本阶段学习内容
要点速记
- 窗口函数不合并行:ROW_NUMBER 行号 / RANK 并列跳号 / DENSE_RANK 不跳
- PARTITION BY 分组 + ORDER BY 排序,解「每组 Top N」
- 索引加速 WHERE/JOIN/ORDER BY;EXPLAIN 看 ALL 就是全表扫
- 深分页用游标(id > 上次值)替代 OFFSET
本阶段练习题(点击选项作答)
1. 实现「每个部门薪资 Top3」首选?
2. EXPLAIN 里 type=ALL 表示?
练习任务
- 用窗口函数实现「每个部门薪资 Top3」
- 给练习库的表加索引并对比查询速度
本阶段验收标准
窗口函数实现『每部门薪资 Top3』,并用 EXPLAIN 优化一次慢查询
4
数据建模
5-10 天难度 高级
核心知识点
三范式与反范式主外键与约束事务与隔离级别表设计实践(电商订单模型)
本阶段学习内容
要点速记
- 三范式消除冗余;反范式(快照)保历史数据正确
- 事务 ACID:原子/一致/隔离/持久;扣库存用原子更新防超卖
- MySQL 默认可重复读 + MVCC
- BEGIN/COMMIT/ROLLBACK 控制事务
本阶段练习题(点击选项作答)
1. 订单表冗余商品名与价格的目的是?
2. 防超卖的正确 SQL 是?
练习任务
- 设计一个电商数据库(用户/商品/订单/库存)
- 写一个带事务的库存扣减存储过程
本阶段验收标准
设计电商数据库(用户/商品/订单/库存)+ 事务扣库存跑通
怎么学
学习方法与实操建议,配合路线图按阶段推进
- 1SQLBolt / W3Schools 交互式练习是最高效的入门方式
- 2每个查询知识点都在在线平台(LeetCode / SQLZoo)刷题巩固
- 3先想清楚「要什么数据 → 表结构 → 查询逻辑」再写 SQL
- 4把常用查询写成自己的笔记模板,随用随查
学完能做什么
- 独立完成复杂多表查询
- 用窗口函数解决排名/累计问题
- 设计规范化数据库表结构
面试常见问题6 题
常见误区
- 1SELECT * 全表扫描,不会用 EXPLAIN
- 2只学查询不学建模,面试必挂
- 3JOIN 语义混淆(INNER/LEFT 分不清)
- 4不练题,纸上谈兵
学习节奏建议
预计 2-4 周,共 4 个阶段。
每阶段按标注时长安排:先读参考文档掌握核心知识点,再完成练习任务,通过 验收标准后标记完成进入下一阶段。
当前为游客模式,进度保存在本设备;登录后可云端同步、多端续学。
当前进度
0%
0 / 4 阶段
进行中
进行中
下一阶段:查询基础