python3连接MySQL数据库
- 2020 年 1 月 9 日
- 筆記
环境: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()
正在持续更新,若有错误,欢迎大家指正。