名校公开课 / 斯坦福 / 经典

数据库:关系数据库与 SQL

Databases: Relational Databases and SQLSOE.YDB-SQL0001斯坦福self-paced免费旁听
关系模型关系代数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 个单元)(查看原始页面 ↗)

  1. 1
    SQL 简介Introduction to SQL

    介绍 SQL 在关系数据库中的地位。区分数据定义语言(DDL)和数据操作语言(DML)。

  2. 2
    基本 SELECT 语句Basic SELECT Statement

    讲 SELECT、FROM、WHERE 3 个子句。说明它们与关系代数运算的对应关系。

  3. 3
    表变量与集合运算Table Variables and Set Operators

    讲表变量(别名)及其在自连接中的作用。讲 UNION、INTERSECT 和 EXCEPT。

  4. 4
    WHERE 子句中的子查询Subqueries in WHERE Clause

    讲 IN、EXISTS、ALL、ANY 的子查询写法。比较子查询和连接的等价改写。

  5. 5
    FROM 和 SELECT 子句中的子查询Subqueries in FROM and SELECT

    讲在 FROM 中把子查询当作临时表。讲在 SELECT 中用子查询计算单个值。

  6. 6
    JOIN 运算符家族The JOIN Family of Operators

    讲内连接、自然连接和 USING 写法。讲左外连接、右外连接和全外连接。

  7. 7
    聚合Aggregation

    讲 COUNT、SUM、AVG、MIN、MAX 聚合函数。讲 GROUP BY 分组和 HAVING 条件。

  8. 8
    NULL 值NULL Values

    讲 NULL 在比较和条件中的行为。说明 NULL 对查询结果和聚合的影响。

  9. 9
    数据修改语句Data Modification Statements

    讲 INSERT、DELETE 和 UPDATE。讲用子查询选出要修改的行。

斯坦福的其他经典课