Coursera 笔记

Module 04 · Accessing Databases using Python

Writing code using DB-API使用 DB-API 编写代码访问数据库

Coursera ↗

您好,欢迎学习本视频。完成本视频后,您将能够:

  • 解释与 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 应用程序的典型步骤:

  1. 导入模块:
  • 导入您的数据库模块。
  1. 建立连接:
  • 使用该模块的 connect** API** 函数。
  • 传入数据库名称、用户名和密码等参数。
  • connect 函数返回连接对象。
  1. 创建游标:
  • 在连接对象上创建游标对象。
  1. 运行和提取查询:
  • 使用游标运行查询。
  • 使用游标提取查询结果。
  1. 关闭连接:
  • 完成查询运行后,通过关闭连接来释放所有资源。

⚠️ 重要提示: 始终关闭连接以避免未使用的连接占用资源。


感谢观看本视频!