数据库原理与应用 第 17 章 · 第一节
课程 › 第 17 章 › 第一节 章首Python统一接口Connection 与 Cursor访问流程 版式
第 17 章 使用 Python 连接 MySQL 数据库 · 第一节

Python 与 DB API

Python 语言的特点,连接对象、游标对象和访问数据库的流程
本 节 知 识 点
  1. 01第 17 章 使用 Python 连接 MySQL 数据库
  2. 02Python 语言概述
  3. 03Python 访问数据库的统一接口
  4. 04Connection 与 Cursor
  5. 05访问数据库的流程
01
第 17 章 · 第一节 · 课件第 1、3、4、5、6 页

第 17 章 使用 Python 连接 MySQL 数据库

前面在 Workbench 中执行 SQL,这一章由程序执行。

课件第 1 页

分清楚

内容在哪一节
Python 与 DB API第一节
连接与环境第二节
增删改查与事务第三节

重 点

实际的应用系统,都是由程序连接数据库,执行 SQL 语句,再把结果展示给用户。

02
第 17 章 · 第一节 · 课件第 2、7、8、9、10、11、12 页合并重做

Python 语言概述

简洁易读,第三方库丰富,本章用 Python 3。

17.1 Python 与 DB API课件第 2、7 至 12 页合并

Python 语言概述

Python 是一种解释型、面向对象的高级程序设计语言,语法简洁、易读,有大量功能强大的标准库和第三方库。
  • 20 世纪 90 年代诞生,完成同样的功能,代码比 Java 等语言短得多
  • 用缩进表示语句的层次,缩进不对就不能运行
  • MySQL 为 C、Java、Python、PHP 等多种语言提供了接口
  • 本章使用 Python 3.x,Python 2.x 已在 2020 年停止更新
应用场景
领域例子
Web 开发Flask、Django 等框架
数据分析Pandas、Numpy、Matplotlib
人工智能TensorFlow、PyTorch
自动化运维系统管理脚本
网络爬虫Scrapy

重 点

Python 用缩进表示语句的层次,复制代码时不能改动缩进。

03
第 17 章 · 第一节 · 课件第 13、14、15、16、17 页

Python 访问数据库的统一接口

Python 程序通过 DB API 访问各种数据库。

课件第 17 页

重 点

Python DB API 是访问数据库的统一接口规范。换一种数据库,操作的方法基本不变,程序容易移植。

04
第 17 章 · 第一节 · 课件第 18、19 页合并重做

Connection 与 Cursor

连接对象管事务,游标对象执行 SQL、取结果。

17.1 Python 与 DB API课件第 18、19 页合并

Connection 与 Cursor 对象

Python DB API 中最常用的是连接对象 Connection 和游标对象 Cursor。

Connection:与数据库的连接
方法说明
cursor()建立并返回一个游标对象
commit()提交当前事务,不提交的修改不会保存
rollback()撤销当前事务中还没有提交的修改
close()关闭连接
  • 连接对象由 connect(参数…) 建立
Cursor:执行 SQL,取出结果
方法或属性说明
execute(sql)执行一条 SQL 语句
fetchone()取出结果的下一行
fetchall()取出剩下的所有行
rowcount影响或取出的行数
close()关闭游标
05
第 17 章 · 第一节 · 课件第 20、21、22、23、24 页合并重做

访问数据库的流程

导入、连接、建游标、执行、关游标、关连接。

17.1 Python 与 DB API课件第 20 至 24 页合并

访问数据库的流程

步骤做什么
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()
  • 修改了数据,要在关闭之前 commit

操作出错时,驱动引发 mysql.connector.Error 异常,可以用 try … except 捕获,错误号在 errno 中。常见的有 1045 口令错误、1062 主码重复、1146 表不存在。

试一试访问数据库的六步

执行
保山学院·人工智能教研室·曹鼎鼎