mysql事务
关系型数据库的特性
①原子性
:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
② 一致性
:是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
③隔离性
:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
④持久性
:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
事务操作
start transaction; 开启事务
commit; 提交事务
rollback; 回滚,撤销全部
(注意:要在Ubuntu上才能操作)
事务有什么作用?我举个例子吧,当你打开两个终端都进入一个mysql数据库中,当第一个终端(记为Q)进行数据插入操作,我们可以在另一个终端(记为P)把这个数据读取出来。但当Q开启事务后,P就不能读到数据,只有Q提交事务后,P方能读取到数据。而回滚有点类似于撤销,当Q开启事务后数据操作有误时可以在为提交事务前使用回滚把所有的操作全部删除。
python连接mysql
在操作之前先开启mysql
服务
service mysql start
下面是开启成功的标志
接下来就是python连接mysql了:
#连接--------------------------------------------------
import pymysql #导入mysql包
# 1、dbcomfig(ip 端口 用户名 密码 数据库 数据表 )
db_config = {
'host':'127.0.0.1', #ip为127.0.0.1
'port':3306, #端口3306
'user':'root', #这里是你登录mysql的用户名
'password':'qwe123', #这是登录mysql的密码
'db':'python3', #你的数据库
'charset':'utf8', #编码utf8
}
# 2、建立连接
conn = pymysql.connect(**db_config)
# 3、定义游标
cur = conn.cursor()
#操作--------------------------------------------------