sql-roadmap
你的 SQL 学习路线图:从新手到专家
Section titled “你的 SQL 学习路线图:从新手到专家”本路线图提供了一条结构化、循序渐进的 SQL 学习路径。无论你想成为后端开发人员、数据分析师还是数据库管理员,本指南都将带你从基础知识走向高级的实际应用。请记住要坚持练习并完成迷你项目!
里程碑 1:绝对基础 (第 1-2 周)
Section titled “里程碑 1:绝对基础 (第 1-2 周)”- 什么是数据库、表、行和列?
- 理解主键 (Primary Keys) 的唯一标识作用。
- 基本数据类型:
INT、VARCHAR、BOOLEAN、DATE。
- 使用
CREATE TABLE定义数据结构。 - 使用
SELECT、FROM、WHERE进行基本数据检索。 - 使用操作符进行筛选:
=、!=、>、<、LIKE、IN、BETWEEN。 - 使用
INSERT INTO添加新数据。 - 使用
UPDATE修改现有数据。 - 使用
DELETE FROM删除数据。
为个人待办事项列表应用创建一个 tasks 表。它应该包含 id(主键)、task_description(文本)、is_completed(布尔值)和 due_date(日期)等列。练习添加、更新和删除任务。
里程碑 2:关联数据 (第 3-4 周)
Section titled “里程碑 2:关联数据 (第 3-4 周)”- 外键 (Foreign Keys) 和建立表之间的关系。
- NULL 值(空值)的概念。
- 连接数据:
INNER JOIN(内连接)、LEFT JOIN(左连接)(以及RIGHT JOIN右连接)。 - 数据聚合:使用
GROUP BY与COUNT()、SUM()、AVG()、MIN()、MAX()等函数。 - 筛选分组:
HAVING子句。 - 排序和限制:
ORDER BY、LIMIT、OFFSET。
完善你的项目。创建一个 users 表和一个 projects 表。使用外键将 tasks 表链接到这两个表。编写查询以:1) 获取特定用户的所有任务。2) 统计每个项目中的任务数量。
里程碑 3:高级查询 (第 5-6 周)
Section titled “里程碑 3:高级查询 (第 5-6 周)”- 子查询 (Subqueries)(查询中的查询)。
- 使用
WITH子句的公用表表达式 (CTEs),使查询更简洁、更易读。
- 窗口函数 (Window Functions):
ROW_NUMBER()、RANK()、LEAD()、LAG(),用于复杂分析查询。 - 集合操作 (Set Operations):
UNION和UNION ALL。 - 条件逻辑 (Conditional Logic):
CASE语句。
分析你的项目数据。使用 CTE 和窗口函数找出任务分配量前 3 的用户。编写一个使用 CASE 语句的查询,将任务分类为“紧急”(今天到期)或“普通”。
里程碑 4:超越查询 (第 7-8 周)
Section titled “里程碑 4:超越查询 (第 7-8 周)”- 事务 (Transactions) 和 ACID 属性(
COMMIT、ROLLBACK)。 - 数据库索引 (Database Indexes):了解聚集索引和非聚集索引如何加速查询。
- 数据库范式化 (Database Normalization):良好数据库设计的 1NF、2NF、3NF 基础。
- 使用
EXPLAIN或EXPLAIN ANALYZE命令检查查询性能。 - 安全基础:理解 SQL 注入 (SQL Injection) 以及参数化查询如何防止它。
在表的外部键列上添加索引,并使用 EXPLAIN 查看性能差异。编写一个事务,将任务从一个项目移动到另一个项目,确保操作是原子性的。
下一步:专业化
Section titled “下一步:专业化”有了扎实的 SQL 基础,你现在可以进行专业化方向的选择:
- 后端开发:为自己喜欢的语言学习一个 ORM(Object-Relational Mapper,对象关系映射器),例如 Python 的 SQLAlchemy 或 TypeScript 的 TypeORM。
- 数据分析与科学:将 SQL 与 Python (Pandas) 或 R 结合进行深度分析。学习如何将 SQL 连接到 Tableau 或 Power BI 等 BI 工具。
- 数据库管理 (DBA):深入研究性能调优、备份/恢复策略、用户管理和扩展。