四、Mysql与python交互
需要下载的模块:pip install pymysql
1、数据准备
创建一个名为First的数据库,并在其中创建一个名为students的表,然后向表中写入一些数据。
2、在py文件中写入代码
import pymysql # 连接数据库 db_config = { "host":'localhost', # 本地用户 'port':3306, # 规定是3306 'user':'root', 'password':'', # 登录mysql的密码 'db':'First' # 使用First数据库 } # 建立连接的对象 conn = pymysql.connect(**db_config) # 建立游标对象 cur = conn.cursor() # 执行sql语句 sql = cur.execute('select * from students') print(sql) # 打印接受到的数据个数 print(cur.fetchall()) # 关闭游标 cur.close() # 关闭连接 conn.close()
以上代码的运行结果:
3、事务
事物的特性:原子性,一致性,隔离性,持久性
(1)提交事务:commit()
提交事务——直正插入和修改数据,如果没有提交事务,插入和修改的数据只是临时保存,并不能存到数据库中。
演示未提交事务时出现的情况:
向数据库中写入信息
写入信息后在数据库中查看
演示提交事务时的情况:
附上源码:
import pymysql # 连接数据库 db_config = { "host":'localhost', # 本地用户 'port':3306, # 规定是3306 'user':'root', 'password':'', # 登录mysql的密码 'db':'First' # 使用First数据库 } # 建立连接的对象 conn = pymysql.connect(**db_config) # 建立游标对象 cur = conn.cursor() # 执行sql语句 sql = cur.execute('insert into students(name,age) values("孙大圣",500)') # 提交事务 conn.commit() # 关闭游标 cur.close() # 关闭连接 conn.close()
(2)手动开启事务:begin 以及 事务回滚:rollback
事务回滚:返回上一步对数据进行的增、删、改等操作
演示如下:
- (1)查询看事务是否开启
show variables like 'autocommit';
ON:表示事务是关闭状态,每次执行增删改查都会自动提交所操作的语句。
- (2)查看数据
(3)开启事务
(4)插入数据并查看
(5)回滚数据,再次查看数据
注意!!!一次手动开启事务,只能用一次回滚,第二次回滚无效
为了解决每次使用begin的麻烦,可以输入以下命令
开启事务:set autocommit=off;