0Pricing
SQL Academy icon

SQL Academy

SQLDataDatabaseBackendBeginner

通过在 SQL Academy 学习 SQL,有效地管理和查询数据库。

🤖 AI 驱动📚 46 门课程👥 10万+ 学习者⭐ 4.9 分
课程概览

SQL:每位数据专业人士都需要掌握的语言

SQL 是关系数据库的标准语言——用于在 PostgreSQL、MySQL、SQLite 以及几乎所有生产数据系统中存储、检索和转换数据。无论你是在构建后端 API、运行分析还是设计数据库架构,SQL 都是不可或缺的技能。本课程涵盖全面的内容,从你的第一条 SELECT 语句开始,一直到 PostgreSQL 特有功能,如 JSONB、窗口函数、PostGIS 和水平分片。

你将学到什么

你将从基础开始:创建表、用 WHERE 筛选行、用 ORDER BY 排序以及用 GROUP BY 聚合。从那里你将深入多表 JOIN 模式、子查询、CTE 以及使用 EXISTS、ANY 和 ALL 的相关子查询。高级主题包括窗口函数、使用 WITH RECURSIVE 的递归查询、GROUPING SETS、ROLLUP 和 CUBE、PostgreSQL 数组和 JSONB、触发器、存储过程、行级安全以及使用 PostGIS 的地理空间查询。课程以数据库管理员和架构师级别结束:大规模架构迁移、表分区、复制、高可用性、使用 VACUUM 和 ANALYZE 进行性能调优,以及用于水平扩展的分片。

学习路径

四十六门课程从 A1 到 C2 逐步进阶。前两门课程为完全初学者介绍数据库和关系概念。A1 和 A2 课程涵盖核心查询——SELECT 精通、筛选模式、聚合和 GROUP BY、多表查询:JOIN 基础,以及日期、字符串、空值和条件逻辑的处理。B1 课程进阶到窗口函数深入、子查询和 CTE、使用 WITH RECURSIVE 的递归查询和PostgreSQL JSON 和 JSONB。B2 涉及性能和生产问题:查询性能:EXPLAIN 和执行计划、索引策略、事务和并发控制以及行级安全和访问控制。C1 和 C2 课程以大规模架构迁移、大表分区、使用 PostGIS 的地理空间 SQL、事件溯源和时间表以及分片和水平扩展收尾。

工作原理

每门课程分为短小的、实践性的课程,你在内置的 SQL 编辑器中完成这些课程,并获得关于你的查询的实时反馈。当你遇到困难时,AI 辅导员随时可用,解释为什么查询返回意外结果或索引如何实际改变执行计划。

开始学习 →

你的学习方式

🎯
互动课程
实时反馈的动手编程练习
🤖
AI 导师
遇到困难时立即获得 AI 帮助
💻
内置编辑器
直接在浏览器中编写并运行代码
🏆
证书
完成课程后获得证书
课程

46 门课程

SQL Academy 学习路径中的所有课程。

01

SQL 与数据库入门

A13 节课

迈入数据库与 SQL 世界的第一步——无需任何经验。

02

SQL 基础:表、行与列

A14 节课PRO

从零开始 SQL 学习之旅。理解什么是关系数据库、数据如何组织到表中、主键为何重要、NULL 如何工作,以及日常会使用哪些数据类型。

03

精通 SELECT

A14 节课PRO

熟练掌握 SELECT 语句。投影列、构建表达式、使用 WHERE 过滤行、排序结果集,并整洁地分页输出大量结果。

04

排序结果:ORDER BY、LIMIT 与前 N 条

A14 节课PRO

为数据井然排序。按一列或多列排序,控制排序方向,并使用 LIMIT 和 OFFSET 只获取所需的行。

05

过滤模式

A24 节课PRO

掌握日常过滤工具箱:使用 LIKE 进行模式匹配、使用 IN 判断集合成员、使用 BETWEEN 检查范围,以及使用 COALESCE 安全处理 NULL 值。

06

聚合与 GROUP BY

A24 节课PRO

使用聚合函数汇总数据,按一个或多个列分组,使用 HAVING 过滤分组,并避免聚合中的经典 NULL 陷阱。

07

多表查询:JOIN 基础

A24 节课PRO

将多个表组合起来。学习关系连接模型、INNER 与 OUTER 连接,以及如何通过别名和自连接两次查询同一张表。

08

处理日期与时间

A24 节课PRO

处理最棘手的数据类型:时间。使用日期运算、提取日期部分、管理时区,并构建同期对比报表。

09

字符串函数与文本搜索

A24 节课PRO

在 SQL 中切分、清理和搜索文本。连接、去除空白、填充、替换字符串,并使用全文搜索向量处理自然语言查询。

10

实用 INSERT/UPDATE/DELETE

A24 节课PRO

从读取数据转向写入数据。插入多行数据,使用 ON CONFLICT 执行 upsert,通过连接更新数据,并安全删除数据而不遗留孤立记录。

11

处理 NULL 值

A24 节课PRO

掌握 SQL 中最棘手的值。理解三值逻辑,并使用 IS NULL、COALESCE 和 NULLIF 安全处理缺失数据。

12

使用 CASE 实现条件逻辑

A24 节课PRO

为查询添加分支逻辑。使用 CASE 表达式直接在 SELECT 中对数据分组、标记和转换。

13

SQL 中的数字与数学运算

A24 节课PRO

自信地处理数字。学习算术、舍入、类型转换和实用数学函数,准确计算您需要的结果。

14

DISTINCT 与去除重复项

A24 节课PRO

每次都获得整洁且唯一的结果。使用 DISTINCT、DISTINCT ON 和去重技术处理重复行。

15

约束与数据完整性

B14 节课PRO

在错误数据进入数据库之前将其拦截。使用 NOT NULL、CHECK、UNIQUE、FOREIGN KEY、DEFAULT 和生成列,让数据库强制执行业务规则。

16

首个数据库设计项目

B14 节课PRO

将所学内容整合起来。从零开始设计一个真实的博客数据库——用户、文章和评论——选择键与数据类型,添加索引,并填充测试数据。

17

子查询与 CTE

B14 节课PRO

通过嵌套和命名组合查询。掌握标量、行和表子查询,理解相关与非相关子查询的区别,以及普通和递归 CTE。

18

深入探究窗口函数

B14 节课PRO

解锁现代 SQL 最强大的功能。计算累计总计、排名、移动平均值和时间序列模式,而无需离开 SQL。

19

集合操作与透视模式

B14 节课PRO

使用 UNION、INTERSECT 和 EXCEPT 组合结果集。使用 CASE 表达式和 PostgreSQL 交叉表,将高表转换为宽报表。

20

高级 JOIN 模式

B14 节课PRO

超越 INNER 和 LEFT。使用 CROSS、LATERAL、反连接和半连接,并学习如何让多路连接运行得更快。

21

PostgreSQL JSON 与 JSONB

B14 节课PRO

将文档视为一等数据。安全地存储、查询和建立 JSONB 索引,并了解何时应使用 JSONB 建模、何时应进行规范化。

22

视图与物化视图

B14 节课PRO

将复杂查询转换为可复用的对象。使用普通视图实现逻辑复用,使用可更新视图实现透明抽象,并使用物化视图提升速度。

23

自连接与层次化数据

B14 节课PRO

让表与自身建立关联。建模管理者、分类和好友列表,并查询父子关系。

24

使用 WITH RECURSIVE 进行递归查询

B14 节课PRO

仅使用 SQL 查询树和图。通过递归公共表表达式遍历任意深度的层次结构。

25

GROUPING SETS、ROLLUP 与 CUBE

B14 节课PRO

同时在多个层级汇总数据。构建小计和总计,无需使用 UNION 拼接几十个查询。

26

EXISTS、ANY、ALL 与相关子查询

B14 节课PRO

编写强大的谓词。结合相关子查询使用 EXISTS、IN、ANY 和 ALL,表达复杂条件。

27

在 PostgreSQL 中处理数组

B14 节课PRO

在单个列中存储和查询列表。以 PostgreSQL 的方式构建、搜索和展开数组数据。

28

查询性能:EXPLAIN 与规划

B24 节课PRO

不要再猜测——直接读取数据库实际执行的操作。掌握 EXPLAIN,识别扫描和连接策略,并修复找到的慢查询。

29

索引策略

B24 节课PRO

索引决定了查询是“快速”还是“无法使用”。学习索引类型、列排序、部分索引和表达式索引,以及如何保持索引健康。

30

事务与并发控制

B24 节课PRO

构建正确的多用户系统。理解 ACID、四种隔离级别、死锁,以及乐观锁与悲观锁之间的权衡。

31

触发器与存储过程

B24 节课PRO

在合适的情况下将行为下推到数据库中。编写触发器、PL/pgSQL 函数和能够自动更新的审计表。

32

高级索引与搜索

B24 节课PRO

超越 B-tree。使用三元组进行模糊匹配,使用 tsvector 搜索自然语言,使用 PostGIS 查询几何数据,并使用 pgvector 嵌入向量。

33

高级窗口函数

B24 节课PRO

掌握窗口函数的进阶部分:窗口框架子句、分桶,以及呈现效果如同仪表板的报表模式。

34

SQL 中的时间序列模式

B24 节课PRO

存储并查询数十亿条指标。使用 TimescaleDB 超表、连续聚合、压缩和数据保留策略。

35

现代 SQL 工作流

B24 节课PRO

像工程师一样编写 SQL。使用 dbt 构建分析流水线,使用 SQLFluff 进行代码检查,使用 dbt 测试和 Great Expectations 进行测试,并通过 CI 发布模式变更。

36

行级安全与访问控制

B24 节课PRO

在行级别保护数据。管理角色、权限和策略,确保用户只能看到应当看到的内容。

37

备份、恢复与灾难恢复

B24 节课PRO

永不丢失数据。规划并执行备份、时间点恢复和还原,从容应对故障。

38

大规模模式迁移

C14 节课PRO

在不停机的情况下,将模式变更发布到正在运行的生产数据库。掌握在线迁移、并发创建索引和零停机重命名。

39

大表分区

C14 节课PRO

使用声明式分区管理拥有数十亿行的表。选择范围、列表或哈希分区,在查询时进行分区裁剪,并动态附加或分离分区。

40

复制与高可用性

C14 节课PRO

保持数据库在线并确保数据安全。将 WAL 流式传输到副本,使用逻辑复制,执行主节点故障转移,并将读取请求路由到从节点。

41

性能调优:VACUUM、ANALYZE 与统计信息

C14 节课PRO

掌握 DBA 的经典主题。理解 MVCC,治理膨胀,保持规划器统计信息最新,并启用仅索引扫描。

42

数据库可观测性与 DBA 技能

C14 节课PRO

在生产环境中运行数据库。使用 pg_stat_statements 找出高耗时查询,使用 pgBadger 分析日志,掌握连接池和容量规划。

43

使用 PostGIS 进行地理空间 SQL 查询

C14 节课PRO

查询整个世界。存储点、线和多边形,并使用 PostGIS 空间 SQL 解答位置相关问题。

44

数据仓库与星型模式

C14 节课PRO

为分析场景设计 SQL。构建事实表和维度表、星型模式以及用于大规模报表的分析查询。

45

事件溯源与时态表

C14 节课PRO

保存历史,而不只是当前状态。在 SQL 中建模只追加事件、审计日志和时间旅行查询。

46

分片与水平扩展

C24 节课PRO

当一台机器不堪重负时,就进行分片。选择分片策略,处理跨分片查询,并了解何时不应进行分片。

常见问题

常见问题解答

SQL Academy 课程免费吗?

免费。你可以免费开始 SQL Academy 课程并完成它的所有互动课程。可选的 PRO 订阅解锁高级 AI 工具和可分享的证书。

学习 SQL 需要有先前的经验吗?

不需要。课程从基础开始,逐步进阶到更高难度的主题,所以即使你没有任何 SQL 基础也可以开始。

我在 CoddyKit 上怎样学习 SQL?

学以致用。简洁的互动课程将清晰的讲解与实时动手编程练习结合,24/7 AI 导师在你遇到困难时提供个性化帮助。

完成 SQL Academy 后能获得证书吗?

可以。PRO 学员可以参加考试,获得 SQL Academy 课程的可分享的完成证书,其中包含可验证的代码。

我能在手机上学习 SQL 吗?

可以。CoddyKit 支持网页版和原生 iOS、Android 应用,你可以在任何设备上学习 SQL,进度会自动同步。

立即开始 SQL Academy

加入数千名学习者,通过 AI 驱动的课程掌握编程。

免费开始 →浏览所有课程