python3连接MySQL数据库

2023年 8月 12日 65.9k 0

环境: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()

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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论