SQL

数据与 AI · 预计 2-4 周 · 4 阶段

SQL 是从数据中取数的核心技能。路线图从单表查询起步,逐步掌握多表连接、聚合分组、窗口函数与查询优化,最后理解数据建模,让你能独立完成从取数到分析的完整链路。

入门
学后可投:数据分析师数据工程师后端工程师
学习进度:已完成 0 / 4 阶段0%

下一阶段目标:查询基础(完成当前阶段后自动推进)

学习路线图按顺序学完每一阶段

SQL进度 0%● 当前 · 阶段 1查询基础阶段 2连接与聚合阶段 3窗口函数与优化阶段 4数据建模

点击阶段节点直达学习内容;绿色=已完成,彩色=当前阶段

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 阶段
进行中

下一阶段:查询基础

📄 帮你写简历~
SQL 学习路线图 · 简历加分知识库 · 简历加分