关系数据库入门(中/英)

SQL, DB-API, 还有更多!

中级

大约 4 个星期

6小时每周 (自主学习)

加入成千上万的全球学员

开始免费课程

加入课程
免费
可享受
课程视频
实战练习与参考项目指导
中级

大约 4 个星期

6小时每周 (自主学习)

加入成千上万的全球学员

课程概述

这门课程周期短,非常有趣,通过 Python 示例介绍如何使用代码中的关系数据库。你将学习结构化查询语言 (SQL) 基础知识和数据库设计,以及将 Python 代码与数据库相关联的 Python API。你还将学习如何防止基于数据库的网络应用受到常见安全问题的攻击。

学完这门课程后,你将能够使用数据库编写后端代码,并安全可靠地存储应用数据。此课程提供中文版本。

喜欢这门课程?加入“全栈网站开发工程师”纳米学位,点此免费体验

为什么学习这门课程?

如果你研究了很多大型网站,例如维基百科和 Reddit,就会发现它们都用到了某种关系数据库。

多年以来,PostgreSQL 和 MySQL 等数据库系统都是网络开发者会用到的工具,并且某些工具是存储和操纵结构化数据最为强大的工具。

如果你想成为全能开发者,那么了解数据库是必不可少的基本条件。即使很多工具包已经不需要在你的应用代码中了解数据库详情,但是能够与数据库互动将非常有助于设计、调试和维护你的应用。

先修要求

你能够阅读 Python 代码并编写基本的 Python 代码。这门课程会用到 Python 编程练习。如果你之前没有接触过 Python,请学习我们的编程基础:Python 课程

如果你理解下面这段代码(也许需要阅读 random 模块文档),那么你所掌握的 Python 知识对于这门课程来说已经足够了:

import random

def ChooseTwice(items):
 a = random.choice(items)
 b = random.choice(items)
 return a, b

names = ["Alice", "Bob", "Charlie", "Debra"]
(one, two) = ChooseTwice(names)
if one == two:
 print "%s is happy!" % one
else:
 print "%s likes %s!" % (one, two)

你可以使用命令行界面(终端)。这门课程的某些练习需用使用类似于 Unix 的命令行界面来输入命令,运行 Python 程序和浏览指令。

如果你学习过我们的如何使用 Git 和 Github课程,那么就足够了,因为这门课程涉及的命令行知识很相似。

你不需要是一名 Web 工程师。这门课程的确会涉及小型网络应用和一些 HTML 及 JavaScript 示例,但是你不需要对这些语言的代码做出更改。

你不需要具备任何数据库经验。这门课程是对关系数据库的入门级介绍。

<你需要在计算机上安装编程文本编辑器(例如 Sublime Text)。你应该能够使用该编辑器打开和编辑 Python 代码文件。

查看使用优达学城的技术要求

你将学习什么内容?

项目

比赛结果

你将开发一个数据库架构,用于存储两个球队之间的比赛结果。然后编写代码来查询这一数据,并确定比赛的获胜者。

学习计划

第 1 课:数据和表格

在这节课里,你将学习如何利用关系数据库将数据整理成表格。你将学习主键的重要性以及表格之间的关系。

第 2 课:SQL 的元素

在这节课里,你将开始学习大多数关系数据库用到的结构化查询语言——SQL。你将学习选择(select)和插入(insert)语句,从数据库中获取数据和将输入插入数据库中的基本操作。还将学习扫描和合并表格的运算符及语法。

第 3 课:Python DB-API

在这课里,你将学习如何通过 Python 代码来访问关系数据库。你将使用在计算机上运行的虚拟机来运行 Python 网络应用,并调整该应用,使其能够使用后端数据库。然后,你将学习基于数据库的应用会遇到的一些常见安全问题,例如著名的 Bobby Tables。这课还会讲解 SQL 更新(update)和删除(delete)语句。

第 4 课:进一步学习 SQL

在这课里,你将学习如何设计和创建数据库。你将了解正态设计,使你更难轻松地使用数据库来编写有效代码。同时还将学习如何使用 SQL 联接(join)运算符快速连接不同表格中的数据。

第 5 课:最终项目

在此项目中,你将运用 Python 和 SQL 知识构建基于数据库的 Python 模型来运行游戏比赛。你将设计数据库架构并编写代码来为此项目实现 API。

讲师与合作伙伴

Karl Krueger

Karl Krueger

Karl 是优达学城的一名课程开发人员。在加入优达学城之前,Karl 曾在 Google 担任网站可靠性工程师(SRE)长达八年,主要负责构建自动化和监控系统,帮助全球最繁忙的网络服务保持在线状态。工作之余,他喜欢园艺、烹饪、棋类游戏,并研究一些新兴编程语言。他总喜欢在各种白板上写写画画。

官方微信公众号二维码

优达学城(Udacity)微信