第 4 章 数据库
与电子表格一样,数据库在商业中的应用也非常普遍。公司使用数据库保存客户、库存和雇员数据。在对运营、销售和财务等活动的跟踪方面,数据库也至关重要。与简单电子表格或工作簿电子表格不同,数据库中的表是互相关联的,就像一个电子表格中的一行可以和另一个电子表格中的一行或一列关联起来一样。我们给出一个标准的例子,如客户数据(姓名、地址等)可以(通过客户 ID 编号)关联到“订单”电子表格中的一行,其中包含预订的物品。这些物品又可以关联到“供应商”电子表格中的数据,使你不但可以跟踪并完成订货,还可以进行更深层次的分析。虽然你可以使用 Python 对 CSV 文件和 Excel 文件这些既常用又重要的数据源进行自动化和规模化的处理,而且掌握了处理这些文件的技能不论从学习的角度(可以学习通用的编程操作)还是从实用的角度(大量商业数据保存在这些类型的文件中)都非常重要,但是,使用数据库却可以将计算机完成任务的能力提高成千上万倍。
关系数据库
本章将要讨论关系数据库(relational database)和关系数据库管理系统(RDBMS)。在关系数据库中,保存信息的表由表间定义好的关系相关联,例如,可以使用像“订单 ID 编号”这样的关键字将客户记录与产品记录、运输记录等关联起来。在某些情况下(通常是“大数据”情况下),定义所有的关系对运营来说没必要,或者需要太多的计算能力。这样就出现了非关系型数据库(non-relational database),它以其他方式存储并搜索数据。举例来说,它不会将位于不同表中的客户记录和订单记录关联起来,而是将所有订单顺序存储在一个记录中,并将客户数据作为订单数据的一个子集。(在这种情况下,你可以节省掉在另一个表中寻找客户数据的开销,但付出的代价是,每次客户新增一个订单时,都要再保存一份客户数据副本。)本书虽然不涉及非关系型数据库,但你应该知道,(a)它们确实存在而且(b)有可以处理很多种非关系型数据库中数据的 Python 模块。
要学习如何使用 Python 同数据库交互,首先你要有个数据库,并且数据库中要有一张充满了数据的表。如果你还没有使用过这样的数据库和数据表,那么这就是你需要解决的主要问题。幸运的是,有两种资源可供选择,它们可以让我们轻松愉快地使用本章中的示例开始学习。
首先,Python 有个内置模块 sqlite3,它可以使我们创建内存数据库。这就是说我们可以使用 Python 代码直接创建一个数据库和其中充满数据的表,不用下载安装专门的数据库软件。在本章的前半部分,我们就使用这个功能快速地开始本章的学习,并把重点放在与数据库、表和数据的交互上面,而不用考虑如何下载和安装数据库。
其次,你可能已经使用过 MySQL、PostgreSQL 或 Oracle 这样的常用数据库系统。这些数据库系统的开发公司已经使这些系统非常易于下载和安装了。尽管你可能不会每天都使用数据库系统,但是它们在商业中的应用却非常普遍。因此,熟悉一些常用的数据库操作,并知道如何使用 Python 来完成这些操作对你来说是非常重要的。在本章的后半部分,我们要下载并安装一个数据库系统,这样你就可以使用在本章前半部分学到的知识,与一个实际数据库系统进行方便地交互并操作其中的数据了。
什么是 SQL
你会发现本章使用的多数模块和软件的名称中都有“SQL”。SQL(通常读作“sequel”,尽管有人坚持读作“es-queue-el”)表示结构化查询语言(Structured Query Language),是一组应用广泛的与数据库进行交互的命令。SQL 的版本很多,你的数据库系统也可能使用专门的命令和语法,但某些确定的操作比如 SELECT、JOIN、INSERT 和 UPDATE 对所有版本都是通用的。本章会教你一些基础知识,包括完全使用 Python 建立一个数据库,以及使用 SQL 从数据库中将数据输送到 Python 代码中以供处理。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论