数据库:关系数据库与 SQL
这门课学什么
课程讲关系模型、关系代数和 SQL,从基础查询讲到子查询、聚合、连接和数据修改。形式是短视频加现场演示,配大量查询练习。
内容摘要
这门课讲关系数据库的基本概念和 SQL 查询语言。它是 Jennifer Widom 2011 年数据库公开课拆分后的 5 门课之一,也是这个系列的入门课。课程自定进度,edX 标注每周约 8–10 小时。Widom 讲课简洁,每个主题先用幻灯片讲概念,再在数据库系统中现场演示。
课程先介绍关系模型和关系数据库管理系统,然后进入 SQL 主线。SQL 部分按查询从简到繁展开:基本 SELECT 语句、表变量和集合运算、WHERE 中的子查询、FROM 和 SELECT 中的子查询、JOIN 家族、聚合、NULL 值。最后讲 INSERT、DELETE 和 UPDATE 数据修改语句。
全部 SQL 演示用同一套示例模式和数据。这些脚本可以在 SQLite、MySQL 和 PostgreSQL 中运行。练习以自动判分的查询题为主:你写 SQL,系统对照标准结果检查。视频中也有随堂小测。Readings 页给出每个单元在 4 本经典教材中的对应章节,方便扩展阅读。
学完后,你能写出包含子查询、连接和聚合的 SQL 查询,能修改数据,并理解 SQL 背后的关系模型。同系列的后续课程是 Advanced Topics in SQL(索引、事务、约束、触发器、视图和权限)和 OLAP and Recursion。
为什么值得学
Widom 2011 年的数据库公开课是斯坦福最早的 3 门 MOOC 之一,开启了 MOOC 浪潮。
课程信息
- 学校
- 斯坦福(Stanford)
- 课程号
- SOE.YDB-SQL0001
- 讲师
- Jennifer Widom
- 学期
- self-paced
- 平台
- edX
- 费用
- 免费旁听
- 难度
- 入门
- 学时
- 每周 8–10 小时(edX 标注)
- 先修
- 无。
- 材料
- 视频、作业、考试
- 许可证
- 未注明
课程大纲 · 共 9 节
大纲依据:edX 课程 Readings 页的 SQL 单元列表(9 个单元)(查看原始页面 ↗)
- 1SQL 简介Introduction to SQL
介绍 SQL 在关系数据库中的地位。区分数据定义语言(DDL)和数据操作语言(DML)。
- 2基本 SELECT 语句Basic SELECT Statement
讲 SELECT、FROM、WHERE 3 个子句。说明它们与关系代数运算的对应关系。
- 3表变量与集合运算Table Variables and Set Operators
讲表变量(别名)及其在自连接中的作用。讲 UNION、INTERSECT 和 EXCEPT。
- 4WHERE 子句中的子查询Subqueries in WHERE Clause
讲 IN、EXISTS、ALL、ANY 的子查询写法。比较子查询和连接的等价改写。
- 5FROM 和 SELECT 子句中的子查询Subqueries in FROM and SELECT
讲在 FROM 中把子查询当作临时表。讲在 SELECT 中用子查询计算单个值。
- 6JOIN 运算符家族The JOIN Family of Operators
讲内连接、自然连接和 USING 写法。讲左外连接、右外连接和全外连接。
- 7聚合Aggregation
讲 COUNT、SUM、AVG、MIN、MAX 聚合函数。讲 GROUP BY 分组和 HAVING 条件。
- 8NULL 值NULL Values
讲 NULL 在比较和条件中的行为。说明 NULL 对查询结果和聚合的影响。
- 9数据修改语句Data Modification Statements
讲 INSERT、DELETE 和 UPDATE。讲用子查询选出要修改的行。