事务操作分两种:
自动事务(默认)、手动事务
手动事务的操作流程
开启事务:start transaction;
进行事务操作
关闭事务
提交事务:commit; 同步数据表,表示操作成功
回滚事务:rollback; 直接清空日志表,表示操作失败
事务操作原理:事务开启之后,所有的操作都会临时保存到事务日志,而事务日志只有在得到commit命令才会同步到数据表,其他任何情况都会清空,比如rollback、断电、断开连接
回滚点 :成功之后设置一个点,用来返回设点位置,一般用于事务较多的时候
设置回滚点语法:savepoint 回滚点名字;
回到回滚点语法:rollback to 回滚点名字;
自动事务处理 (mysql默认都是自动事务)
show variables like 'autocommit';
关闭自动提交:
set autocommit=off/0;
事务的四大特性:ACID (重点)
A:Atomic,原子性
C:Consistency,一致性
I:Isolation,隔离性
D:Durability,持久性
锁机制
MySQL与Python交互
一、准备数据
1、创建数据表
2、插入数据
三、Python 中操作 MySQL 步骤
1、引入模块
from pymysql import*
2、Connection 对象
用于建立与数据库的连接
创建对象:调用connect()方法
参数host:连接的mysql主机,如果本机是'localhost'
参数port:连接的mysql主机的端口,默认是3306
参数database:数据库的名称
参数user:连接的用户名
参数password:连接的密码
参数charset:通信采用的编码方式,推荐使用utf8
对象的方法
close()关闭连接
commit()提交
cursor()返回Cursor对象,用于执行sql语句并获得结果
3、Cursor对象
用于执行sql语句,使用频度最高的语句为select、insert、update、delete
获取Cursor对象:调用Connection对象的cursor()方法
cs1=conn.cursor()
对象的方法
close()关闭
execute(operation [, parameters ])执行语句,返回受影响的行数,主要用于执行insert、update、delete语句,也可以执行create、alter、drop等语句
fetchone()执行查询语句时,获取查询结果集的第一个行数据,返回一个元组
fetchall()执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回
对象的属性
rowcount只读属性,表示最近一次execute()执行后受影响的行数
connection获得当前连接对象