第 17 章 · 第一节 · 课件第 1、3、4、5、6 页
第 17 章 使用 Python 连接 MySQL 数据库
前面在 Workbench 中执行 SQL,这一章由程序执行。

分清楚
| 内容 | 在哪一节 |
|---|---|
| Python 与 DB API | 第一节 |
| 连接与环境 | 第二节 |
| 增删改查与事务 | 第三节 |
重 点
实际的应用系统,都是由程序连接数据库,执行 SQL 语句,再把结果展示给用户。
前面在 Workbench 中执行 SQL,这一章由程序执行。

| 内容 | 在哪一节 |
|---|---|
| Python 与 DB API | 第一节 |
| 连接与环境 | 第二节 |
| 增删改查与事务 | 第三节 |
实际的应用系统,都是由程序连接数据库,执行 SQL 语句,再把结果展示给用户。
简洁易读,第三方库丰富,本章用 Python 3。
| 领域 | 例子 |
|---|---|
| Web 开发 | Flask、Django 等框架 |
| 数据分析 | Pandas、Numpy、Matplotlib |
| 人工智能 | TensorFlow、PyTorch |
| 自动化运维 | 系统管理脚本 |
| 网络爬虫 | Scrapy |
Python 用缩进表示语句的层次,复制代码时不能改动缩进。
Python 程序通过 DB API 访问各种数据库。

Python DB API 是访问数据库的统一接口规范。换一种数据库,操作的方法基本不变,程序容易移植。
连接对象管事务,游标对象执行 SQL、取结果。
Python DB API 中最常用的是连接对象 Connection 和游标对象 Cursor。
| 方法 | 说明 |
|---|---|
cursor() | 建立并返回一个游标对象 |
commit() | 提交当前事务,不提交的修改不会保存 |
rollback() | 撤销当前事务中还没有提交的修改 |
close() | 关闭连接 |
| 方法或属性 | 说明 |
|---|---|
execute(sql) | 执行一条 SQL 语句 |
fetchone() | 取出结果的下一行 |
fetchall() | 取出剩下的所有行 |
rowcount | 影响或取出的行数 |
close() | 关闭游标 |
导入、连接、建游标、执行、关游标、关连接。
| 步骤 | 做什么 |
|---|---|
| 1 | 导入数据库的 Python 接口 |
| 2 | 用 connect() 连接数据库,得到连接对象 |
| 3 | 用连接对象的 cursor() 得到游标对象 |
| 4 | 用游标的 execute() 执行 SQL,取出和处理数据 |
| 5 | 关闭游标 |
| 6 | 关闭连接 |
import mysql.connector db = mysql.connector.connect(…) cursor = db.cursor() cursor.execute(sql) … 取出、处理数据 cursor.close() db.close()
操作出错时,驱动引发 mysql.connector.Error 异常,可以用 try … except 捕获,错误号在 errno 中。常见的有 1045 口令错误、1062 主码重复、1146 表不存在。