MySQL学习笔记(二):真·python运行mysql操作

版权声明:拿的时候你得告诉我一声~ https://blog.csdn.net/xiaohuoche175/article/details/83387640

这次咱们真的开始在pycharm里进行mysql数据库操作了,

首先还是新建一个数据库,

然后新建属性字段

接下来开始创建python与mysql的连接

import pymysql

#连接数据库
conn = pymysql.connect(
    #IP和端口
    host = "127.0.0.1", port=3306,

    #账号和密码
    user = "root", password="123456",

    #数据库和编码
    database = "test", charset="utf8"
)

#获得数据库游标
cursor = conn.cursor()

#执行插入,返回受影响的行数
affected = cursor.execute("insert into student(name,gender) values ('%s','%d')" % ('TOM', 18))
print("插入结束,%d条记录受影响" % (affected))

#执行查询,返回受影响的行数
affected = cursor.execute("select * from student")
print("查询到%d条记录" % (affected))

#查询的结果被保存在游标中,拿取全部结果
ret = cursor.fetchall()
print(type(ret),ret) #类型是二维元组

#提交当前事务到数据库,不提交等于啥也没干
conn.commit()
print("修改已提交")

#断开数据库连接
conn.close()

查看打印结果

@交互过程 
pymysql与MySQL的交互过程可以概括为:

  • 配置和连接数据库;
  • 获取数据查询游标,以执行SQL语句;
  • 执行SQL语句,返回受影响的记录数;
  • 如果是查询,从游标中读取得到的结果;
  • 提交本次访问的结果;
  • 关闭数据库;

@数据库事务(回滚机制)

当我们对数据库进行批量操作时,这一系列操作往往是一个有机整体;
因此这一系列操作,应该要么全部成功,要么全部回滚到访问前的状态,否则就容易形成脏数据;
举个例子,一次网购交易的成功提交,要修改商家出货表、用户订单表、转账信息表、物流信息表等等,所有环节都必须严丝合缝,发生任何异常交易都不应成功,一切数据应回滚到交易发生前的状态;
这种要么全部成功、要么全部失败且数据回滚的批量数据操作,就称为一次事务(Transaction);
一次事务(批量数据操作)的结果只有两种:①全部成功并提交,②发生异常并回滚;
 

import pymysql

#连接数据库
conn = pymysql.connect(
    #IP和端口
    host = "127.0.0.1", port=3306,

    #账号和密码
    user = "root", password="123456",

    #数据库和编码
    database = "test", charset="utf8"
)

try:
    #获得数据库游标
    cursor = conn.cursor()

    #执行插入,返回受影响的行数
    affected = cursor.execute("insert into student(name,gender) VALUES ('%s','%d') " % ('tom','18'))
    print("插入结束,%d条记录受影响" % (affected))

    #执行查询,返回受影响的行数
    affected = cursor.execute("select * from student")
    print("查询到%d条记录" % (affected))

    #查询的结果被保存在游标中,拿取全部结果
    ret = cursor.fetchall()
    print(type(ret),ret) #类型是二维元组

    #提交当前事务到数据库,不提交等于啥也没干
    conn.commit()
    print("修改已提交")

#异常操作,回滚机制
except Exception as e:
    #发生异常是回滚到整个事务开始之前的状态
    conn.rollback()
    print(e,'数据已经回滚')

#断开数据库连接
conn.close()

这里gender是整数类型,传递了一个字符串,我们查看一下运行结果

猜你喜欢

转载自blog.csdn.net/xiaohuoche175/article/details/83387640