码迷,mamicode.com
首页 > 数据库 > 详细

pymysql使用(二)

时间:2018-08-29 01:06:18      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:import   err   charset   insert   sql查询   事务机制   value   hal   rop   

import pymysql
db = pymysql.connect("localhost","root","","hank") #打开数据库 (如果连接失败会报错)
cursor = db.cursor() #获取游标对象
sql_select = "select version()" #执行sql查询操作
cursor.execute(sql_select)

1

data = cursor.fetchone() #使用fetchone()获取单条数据
print("DB version is : %s" % data)

DB version is : 5.6.39

cursor.execute("drop table if exists hankleo") #如果hankleo表存在,就删除

0

#创建表hankleo
sql_create = "create table hankleo(id int,name varchar(10)) engine = innodb charset = utf8"
cursor.execute(sql_create)

0

#插入操作
sql_insert = ‘‘‘insert into hankleo(id,name) values(2,"李明")‘‘‘
try:
    #执行sql
    cursor.execute(sql_insert)
    db.commit()
except:
    #发生异常
    db.rollback()
#查询操作
sql_select = ‘‘‘select * from hankleo‘‘‘
try:
    #执行sql语句
    cursor.execute(sql_select)
    #获取所有记录列表
    result = cursor.fetchall()
    for row in result:
        id = row[0]
        name = row[1]
        print("id = %d,name = %s" % (id,name))
except:
    print("Error:unable to fecth data")

id = 2,name = 李明

执行事务

事务机制可以确保数据的一致性

  1. 事务有四个属性:原子,一致,隔离,持久;通常称为ACID
  2. Python DB API2.0的事务提供了两个方法:commit 和 rollback
  3. 对于支持事务的数据库,在python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务,这个区别于mysql客户端,commit()方法提交所有的事务,rollback()方法回滚当前游标的所有操作。
    每个方法都开启了一个新的事务
#例子
sql_insert = ‘‘‘insert into hankleo (id,name) values (1,‘china‘)‘‘‘
try:
    cursor.execute(sql_insert)
    db.commit()
except:db.rollback()
    
print("end")

#关闭连接
db.close()

end

pymysql使用(二)

标签:import   err   charset   insert   sql查询   事务机制   value   hal   rop   

原文地址:https://www.cnblogs.com/hankleo/p/9551720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!