python3连接MySQL数据库

环境:python 3.6.1 + mysql 5.1

Python3 支持用 pymysql 模块来链接数据库

1、pymysql安装

windows下:pip install pymysql 直接安装

官方文档:http://www.pymssql.org/en/stable/

2、实现思路

和用C++访问数据库方法基本相同

A. 通过pymysql模块的方法,与数据库建立连接

B. 编写SQL语句

C. 通过连接的返回的数据库对象,调用相应方法执行SQL语句

D. 读取数据库返回的数据(即缓存区中的数据)

E. 对相应的返回数据进行操作

F. 关闭数据库对象,关闭数据库

3、查询语句执行流程图:

4、增删改语句执行流程图:

5、事务:访问和更新数据库的一个程序执行单元

– 原子性:事务中包括的操作要么做,要么都不做(捆绑不可分割)

– 一致性:事务必须使数据库从一致性状态变到另一个一致性状态

– 隔离性:一个事务的执行不能被其他事务干扰

– 持久性:事务一旦提交,它对数据库的改变就是永久性的

6、增删改查功能实现代码:

#导入pymysql模块  import  pymysql    class MYSQL:      # 初始化函数,初始化连接列表      def __init__(self,host,user,pwd,dbname):          self.host   = host          self.user   = user          self.pwd    = pwd          self.dbname = dbname        # 获取数据库游标对象cursor      # 游标对象:用于执行查询和获取结果      def getCursor(self):            # 建立数据库连接          self.db = pymysql.connect(self.host,self.user,self.pwd,self.dbname)            # 创建游标对象          cur = self.db.cursor()            # 返回          return cur        # 查询操作      def queryOperation(self,sql):            # 建立连接获取游标对象          cur = self.getCursor()            # 执行SQL语句          cur.execute(sql)            # 获取数据的行数          row = cur.rowcount            # 获取查询数据          # fetch*          # all 所有数据,one 取结果的一行,many(size),去size行          dataList = cur.fetchall()            # 关闭游标对象          cur.close()            # 关闭连接          self.db.close()            # 返回查询的数据          return dataList,row        # 删除操作      def deleteOperation(self,sql):            # 获取游标对象          cur = self.getCursor()          try:              # 执行SQL语句              cur.execute(sql)                # 正常结束事务              self.db.commit()            except Exception as e:              print(e)                # 数据库回滚              self.db.rollback()            # 关闭游标对象          cur.close()            # 关闭数据库连接          self.db.close()        # 数据更新      def updateOperation(self,sql):          cur = self.getCursor()          try:              cur.execute(sql)              self.db.commit()          except Exception as e:              print(e)              self.db.rollback()            cur.close()          self.db.close()        # 添加数据      def insertOperation(self,sql):            cur = self.getCursor()          try:              cur.execute(sql)              self.db.commit()          except Exception as e:              print(e)              self.db.rollback()            cur.close()          self.db.close()

正在持续更新,若有错误,欢迎大家指正。