Python操作MySQL数据库完整指南:从安装到增删改查
本文详细介绍如何使用Python通过PyMySQL库连接MySQL数据库。内容涵盖环境安装、建立连接、创建游标、事务提交与回滚,以及执行查询、插入、更新和删除等核心操作。通过具体代码示例,帮助开发者掌握Python与MySQL交互的标准流程。
一、关于Python操作数据库的概述
Python中所有用于数据库接口的程序均遵循Python DB-API规范。
该规范定义了一系列必需的对象及数据库存取机制,旨在为各类底层数据库系统及多样化的数据库接口提供统一的访问标准。由于DB-API实现了不同数据库间的一致访问接口,使得在不同数据库之间迁移代码变得十分简便。
在Python中连接数据库(无论是MySQL、SQL Server、PostgreSQL还是SQLite),通常都采用游标(Cursor)机制进行操作。
二、一般操作流程

三、安装mysql的操作库
$ pip3 install PyMySQL
四、基本操作
创建连接
import pymysql
# 创建连接方式1
db = pymysql.connect(host='localhost',
user='root', password='root', db='test', port=3306)
# 创建连接方式2
db = pymysql.connect(dsn='localhost:test', user='root', password='root')
close()
关闭当前的connect对象。一旦关闭,将无法继续执行任何操作,除非重新创建新的连接。
cursor()
用于创建游标对象。游标允许用户执行数据库命令并获取查询结果。根据Python DB-API标准,游标对象始终扮演游标角色,无论底层数据库是否原生支持游标。因此,数据库接口程序必须实现游标对象。创建游标后,即可执行查询或其他命令(包括多个查询和命令),并从结果集中提取一条或多条记录。
commit()
提交当前事务,执行游标对象中的所有更新操作。
rollback()
取消当前事务,回滚当前游标中的所有操作。
游标操作
cursor = db.cursor()
- close():关闭此游标对象
- fetchone():获取结果集的下一行
- fetchall():获取结果集中剩余的所有行
- excute(sql[, args]):执行一个数据库查询或命令
- callproc(func[,args]):调用一个存储过程
查询操作
import pymysql
db = pymysql.connect(host='localhost', user='root', password='root', db='test')
cursor = db.cursor()
sql = '''select * from t_account'''
try:
cursor.execute(sql)
# 方式1读取结果集
rows = cursor.fetchall()
for row in rows:
print(row)
# 方式2读取结果集
for i in range(cursor.rowcount):
result = cursor.fetchone()
print(result)
except Exception as e:
raise e
finally:
cursor.close()
db.close()
添加操作
import pymysql
db = pymysql.connect(host='localhost', user='root', password='root', db='test')
cursor = db.cursor()
sql = '''insert into t_account values(default,'zhangsan','z',100,'张三')'''
try:
print(cursor.execute(sql))
db.commit()
except:
db.rollback()
finally:
cursor.close()
db.close()
修改操作
import pymysql
db = pymysql.connect(host='localhost', user='root', password='root', db='test')
cursor = db.cursor()
sql = '''update t_account set realname = '李四' where id = '5' '''
try:
print(cursor.execute(sql))
db.commit()
except:
db.rollback()
finally:
cursor.close()
db.close()
删除操作
import pymysql
db = pymysql.connect(host='localhost', user='root', password='root', db='test')
cursor = db.cursor()
sql = '''delete from t_account where id = '5' '''
try:
print(cursor.execute(sql))
db.commit()
except:
db.rollback()
finally:
cursor.close()
db.close()
调用存储过程
cursor.callproc("存储过程名称")
for result in cursor.fetchall():
print(result)
到此这篇关于教你怎么用Python操作MySql数据库的文章就介绍到这了,更多相关Python操作MySql内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









