多年来,哈佛大学的 CS50 课程 – 人人的计算机科学入门课 – 由 David J Malan教授教授,帮助来自世界各地的学习者了解计算机科学,并开始他们的开发之旅。虽然 CS 50 是一个计算机科学入门课程,但还提供了Python、AI等专门的课程。
正如你所猜到的那样,该团队还发布了一门名为《SQL 数据库入门》的课程,即CS50 SQL,帮助你学习查询数据库、设计自己的数据库等等。
如果你是一名有抱负的数据专业人员,你应该在数据库和 SQL 方面打下坚实的基础。而这门课程将帮助你实现这个目标。
关于 CS50 SQL 课程
由 Carter Zenke 教授教授的 SQL 数据库入门 课程共分为七个模块,为期七周。每个模块都包含关于真实数据集的讲座和相关问题集。
对于每个模块,你可以按照以下步骤进行学习:
- 观看讲座
- 复习笔记
- 尝试讲座中提出的示例
- 完成模块的问题集
你可以在 VS Code for CS50 上解决问题集。就像 codepsaces 一样,它提供了适用于 CS50 的云端版 VS Code。因此,在你完成课程时,你会有大量的学习和实践机会。
现在我们已经了解了该课程的基本内容,让我们来看一下具体内容。
注:下面的第 1 到第 7 模块对应课程中的第 0 到第 6 周。
1. 查询数据库
第一个模块查询数据库首先讨论了超越电子表格的需求,以及数据在关系数据库中的存储方式。然后,它介绍了使用 SQL 查询数据库的基础知识。涉及的主题包括:
- SELECT 语句
- LIMIT 和 WHERE 子句
- 理解 NULL 值
- LIKE 关键字
- 范围
- ORDER BY
- 聚合函数
查看有关 查询的模块。
2. 关联数据库表
关联数据库表模块建立在前一个模块的基础上,超越了单个数据库表的范畴。你将学习如何使用多个表格并了解它们之间的关系。涉及的主题包括:
- 实体关系图 (ER 图)
- 关系类型:一对一、一对多和多对多的关系
- 键:主键和外键
- 子查询
- IN 关键字
- 连接操作(JOIN)
- 集合运算:INTERSECT、UNION 和 EXCEPT
- GROUP BY
查看有关 关联的模块。
3. 设计数据库模式
到目前为止,你已经学会了如何使用数据库,查询单个和多个表格来回答问题。但是,你如何创建一个自己的数据库呢?这个模块设计数据库模式正好涵盖了这一点。你将学习如何从头开始设计数据库,包括以下概念:
- 创建数据库模式
- 归一化概念和数据库表之间的关系
- 创建表格
- 数据类型和存储类别
- 对表格和列的约束
- 修改表格
查看 设计 模块。
4. 写入数据库
现在你已经知道如何使用查询从数据库中检索数据,并且可以从头开始设计自己的数据库。这个 写入数据库 模块将教会你:
- 将记录插入数据库
- 从 CSV 文件导入数据到数据库
- 删除和更新记录
查看关于 写入 的模块。
5. 查看数据库表
下一个关于 查看数据库表 的模块将深入探讨创建数据库视图及其优势,包括以下内容:
- 什么是视图
- 创建视图
- 创建视图的优势
- 公用表达式 (CTE)
- 分区
- 数据库安全
- 软删除
查看关于 查看 的模块。
6. 优化数据库查询
优化数据库查询 模块着重于使用索引加快数据库查询速度以及与索引相关的权衡。涵盖的主题包括:
- 创建数据库表索引
- 跨多个表创建索引
- 空间与时间的权衡
- 对部分行创建索引
- 事务和竞争条件
查看关于 优化 的模块。
7. 扩展数据库
迄今为止,在此课程中我们使用了 SQLite。这个关于 扩展数据库 的最后一个模块将向您介绍 MySQL 和 PostgreSQL。它为您打下这些广泛使用的 RDMS 的基础。模块内容包括:
- 创建和修改表
- MySQL 存储过程
- 带参数的存储过程
- 使用 PostgreSQL
- 访问控制语句
- SQL 注入攻击
查看关于 扩展 的模块。
如果您正在考虑从事数据相关的职业,本课程所涵盖的所有主题都非常重要。《引论:数据科学中的数据库》提供了数据库的相关性和必备数据库技能的概述。
总结
总的来说,这是一个在数据库和 SQL 方面打下坚实基础的优秀课程。作为数据专业人员,您将经常使用 SQL。但您也会意识到精通 SQL 是持续不断的过程。在这种情况下,实践是您最好的朋友!
如果您准备好锻炼和展示自己的 SQL 技能,查看这份关于 练习 SQL 的 7 个最佳平台。
[Bala Priya C](https://twitter.com/balawc27) 是一位来自印度的开发者和技术作家。她喜欢在数学、编程、数据科学和内容创作的交叉领域工作。她的兴趣和专业知识包括 DevOps、数据科学和自然语言处理。她喜欢阅读、写作、编码和咖啡!目前,她正在通过撰写教程、指南、观点文章等来与开发者社区共享她的知识。