第1章 课前准备
1-1 Python DB API介绍
- 背景:没有Python DB API之前,接口程序混乱,Python应用程序(包含sql)需要对接各种数据库;
- Python DB API:Python访问数据库的统一接口规范,统一对接各种不同的数据库;
-
内容
- 流程
1-2 Python开发MySql环境
第2章 Python操作数据库
2-1 Python数据库连接对象connection
- 连接对象:建立python客户端与数据库的网络连接;
- 创建方法:
MySqldb.Connect
(参数),支持如下6个参数:
参数名 | 类型 | 说明 |
---|---|---|
host | 字符串 | MySql服务器地址 |
port | 数字 | MySql服务器端口 |
user | 字符串 | 用户名 |
password | 字符串 | 密码 |
db | 字符串 | 数据库名称 |
charset | 字符串 | 连接编码 |
-
connection
对象支持的方法
参数名 | 类型 |
---|---|
cursor() | 使用该连接创建并返回游标 |
commit() | 提交当前事务 |
rollback() | 回滚当前事务 |
close() | 关闭连接 |
2-2 Python游标对象cursor
- 游标对象:用于执行查询,并获取结果;
- 游标对象cursor支持的方法;
方法名 | 说明 |
---|---|
execute(op [,args]) | 执行一个数据库查询和命令 |
fetchone() | 获取结果集的下一行 |
fetchmany(size) | 获取结果集的下几行 |
fetchall() | 获取结果集剩下的所有行 |
rowcount() | 最近一次execute返回数据的行数或影响行数 |
close() | 关闭游标对象 |
-
execute()
:执行SQL命令,将结果从数据库获取到客户端,过程如下 -
fetch*()
:移动rownumber
,返回数据。MySqldb这个插件,是使用rownumber变量实现数据遍历的,类似于数组的指针,对数组的遍历就是靠移动指针进行遍历,下一次遍历是根据指针的位置获取对应的数据;
-
rowcount()
:是一个属性,可以返回缓冲区中所有数据的行数。
第3章 Python增删改查数据库
3-1 Python之select查询数据
-
select
查询数据的执行流程
3-2 Python之insert/update/delete更新数据库
-
更新数据库的执行流程
- 事务:访问和更新数据库的一个程序执行单元,程序执行单元即为很多execute操作的集合;
- 事务的特点
- 原子性:事务中的所有操作,要么都做、要么都不做;
- 一致性:事务必须使数据库从一致性状态变到另一个一致性状态;
- 隔离性:一个事务的执行,不能被其它事务干扰;
- 持久性:事务一旦提交,它对数据库的改变就是永久性的。
- 事务的方法
- 关闭自动
commit
:设置connection.autocommit(False),MySqldb插件已经默认设置commit为自动关闭; - 正常结束事务:connection.commit(),使前面所有的操作正常生效;
- 异常结束事务:connection.rollback(),使前面所有的操作回到没有被执行的状态,即回滚。
3-3 Python之实例:银行转账
-
执行流程