Module 04 · Accessing Databases using Python
Writing code using DB-API使用 DB-API 编写代码访问数据库
您好,欢迎学习本视频。完成本视频后,您将能够:
- 解释与 Python DB-API 和数据库游标相关的基本概念。
- 使用 DB-API 编写代码。
一、Python DB-API 简介
如模块开头所述,用户在 Jupyter Notebook 中编写 Python 程序,然后通过某种机制与数据库管理系统 (DBMS) 进行通信。Python 代码通过 DB API 调用连接到数据库。

DB-API 标准
- 定义: DB API 是用于访问关系数据库的 Python 标准 API。
- 作用: 这是一个允许您编写单个程序来与多种关系数据库配合使用的标准,而无需为每种数据库编写单独的程序。
- 通用性: 一旦学会了 DB-API 函数,您就可以将这些知识应用于使用 Python 访问任何数据库。
DB-API 的优势
- 易于理解和实现: DB-API 旨在鼓励用于访问数据库的 Python 模块之间具有相似性。
- 一致性: 它实现了一致性,从而使模块更易于理解。
- 可移植性: 代码通常在不同数据库之间具有更高的可移植性。
- 连接范围广: 扩大了 Python 数据库连接的范围。
数据库与 DB-API 库的对应关系
每个数据库系统都有自己的库。下表列出了一些数据库及其对应的用于连接 Python 应用程序的 DB-API:
| 数据库 | 对应的 DB-API 库 |
|---|---|
| IBM DB2 | ibm_db |
| MySQL | mysql-connector-python |
| PostgreSQL | psycopg2 |
| MongoDB | PyMongo |
二、DB-API 的两大核心概念
Python DB-API 的两个主要概念是:连接对象 (Connection Objects) 和游标对象 (Cursor Objects)。
1. 连接对象 (Connection Objects)
- 用途: 用于连接到数据库并管理事务。
- 创建: DB-API 包含一个
connect** 构造函数用于创建数据库连接。它返回一个连接对象**。

| 连接方法 (Connection Methods) | 描述 |
|---|---|
cursor() |
返回一个新的游标对象。 |
commit() |
用于将任何待处理事务提交到数据库。 |
rollback() |
使数据库回滚到任何待处理事务的起始状态。 |
close() |
用于关闭数据库连接。 |

2. 游标对象 (Cursor Objects)
- 用途: 用于运行查询 (Queries)。
- 作用: 游标对象代表一个数据库游标,用于管理提取操作的内容。
- 工作原理: 游标的工作方式类似于文本处理系统中的光标:您在结果集中向下滚动并将数据获取到应用程序中。游标用于扫描数据库的结果。
- 类比: 游标类似于编程语言中的文件名或文件句柄 (File Handle):
- 打开: 程序打开文件以访问其内容,也打开游标以访问查询结果。
- 关闭: 程序关闭文件以结束访问,也关闭游标以结束对查询结果的访问。
- 位置跟踪: 文件句柄跟踪程序在打开文件中的当前位置,而游标跟踪程序在查询结果中的当前位置。
游标隔离性:
- 从同一连接创建的游标不隔离:一个游标对数据库所做的任何更改会立即对其他游标可见。
- 从不同连接创建的游标可能隔离,也可能不隔离,这取决于事务支持的实现方式。

三、使用 DB-API 查询数据库的流程
以下是使用 DB-API 查询数据库的 Python 应用程序的典型步骤:
- 导入模块:
- 导入您的数据库模块。
- 建立连接:
- 使用该模块的
connect** API** 函数。 - 传入数据库名称、用户名和密码等参数。
connect函数返回连接对象。
- 创建游标:
- 在连接对象上创建游标对象。
- 运行和提取查询:
- 使用游标运行查询。
- 使用游标提取查询结果。
- 关闭连接:
- 完成查询运行后,通过关闭连接来释放所有资源。
⚠️ 重要提示: 始终关闭连接以避免未使用的连接占用资源。

感谢观看本视频!