Skip to content

sql-roadmap

你的 SQL 学习路线图:从新手到专家

Section titled “你的 SQL 学习路线图:从新手到专家”

本路线图提供了一条结构化、循序渐进的 SQL 学习路径。无论你想成为后端开发人员、数据分析师还是数据库管理员,本指南都将带你从基础知识走向高级的实际应用。请记住要坚持练习并完成迷你项目!

  • 什么是数据库、表、行和列?
  • 理解主键 (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(日期)等列。练习添加、更新和删除任务。

  • 外键 (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) 统计每个项目中的任务数量。

  • 子查询 (Subqueries)(查询中的查询)。
  • 使用 WITH 子句的公用表表达式 (CTEs),使查询更简洁、更易读。
  • 窗口函数 (Window Functions):ROW_NUMBER()、RANK()、LEAD()、LAG(),用于复杂分析查询。
  • 集合操作 (Set Operations):UNION 和 UNION ALL。
  • 条件逻辑 (Conditional Logic):CASE 语句。

分析你的项目数据。使用 CTE 和窗口函数找出任务分配量前 3 的用户。编写一个使用 CASE 语句的查询,将任务分类为“紧急”(今天到期)或“普通”。

  • 事务 (Transactions) 和 ACID 属性(COMMIT、ROLLBACK)。
  • 数据库索引 (Database Indexes):了解聚集索引和非聚集索引如何加速查询。
  • 数据库范式化 (Database Normalization):良好数据库设计的 1NF、2NF、3NF 基础。
  • 使用 EXPLAIN 或 EXPLAIN ANALYZE 命令检查查询性能。
  • 安全基础:理解 SQL 注入 (SQL Injection) 以及参数化查询如何防止它。

在表的外部键列上添加索引,并使用 EXPLAIN 查看性能差异。编写一个事务,将任务从一个项目移动到另一个项目,确保操作是原子性的。

有了扎实的 SQL 基础,你现在可以进行专业化方向的选择:

  • 后端开发:为自己喜欢的语言学习一个 ORM(Object-Relational Mapper,对象关系映射器),例如 Python 的 SQLAlchemy 或 TypeScript 的 TypeORM。
  • 数据分析与科学:将 SQL 与 Python (Pandas) 或 R 结合进行深度分析。学习如何将 SQL 连接到 Tableau 或 Power BI 等 BI 工具。
  • 数据库管理 (DBA):深入研究性能调优、备份/恢复策略、用户管理和扩展。