pymysql模块详解

华子目录

简介

  • pymysql是一个用于Python编程的第三方模块,用于连接和操作MySQL数据库。它提供了一个简单而强大的接口,使开发者能够轻松地在Python程序中执行各种数据库操作,如查询、插入、更新和删除数据等

安装pymysql

bash 复制代码
#在终端命令中执行
pip install pymysql

连接对象常用方法

方法 描述
cursor() 创建一个游标对象。所有的sql语句执行都要在游标对象下进行
begin() 开启一个事务
commit() 提交事务
rollback() 回滚事务
select_db(db) 切换数据库(db是一个字符串)
close() 关闭数据库连接

游标对象常用方法

方法 描述
execute(sql, params) 执行数据库语句,如sql语句或数据库命令(sql是一个字符串,params是tuple, list or dict)
executemany(sql, params) 用于批量执行sql语句(sql是一个字符串,params为tuple或list)
fetchone() 返回查询结果中第一个记录
fetchmany(size) 返回查询结果中指定数量的记录(size是一个int类型,默认为1)
fetchall() 返回查询结果集中所有记录

数据库操作

查

python 复制代码
import pymysql
from pprint import pprint

#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
                     port=3306,
                     user="huazi",
                     password="123456",
                     database="huazi",
                     charset="utf8mb4")

#创建一个游标对象
cursor = db.cursor()

#写一条sql语句
sql = "select * from stu"

#执行sql语句
cursor.execute(sql)

#获取数据
data = cursor.fetchall()
pprint(data)

#关闭游标
cursor.close()
#关闭连接
db.close()

改

python 复制代码
import pymysql

#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
                     port=3306,
                     user="huazi",
                     password="123456",
                     database="huazi",
                     charset="utf8mb4")

#创建一个游标
cursor = db.cursor()

#写一条sql语句
sql = "update stu set name=%s where id=%s"

name = "xiaohua"
id = 1

#执行sql语句
cursor.execute(sql, [name, id])

#提交
db.commit()

#关闭游标
cursor.close()
#关闭连接
db.close()

批量增加

python 复制代码
import pymysql

#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
                     port=3306,
                     user="huazi",
                     password="123456",
                     charset="utf8mb4")

#创建一个游标
cursor = db.cursor()

#选择操作的数据库
db.select_db("test")

#写一条sql语句
sql = "insert into user(username, password) values(%s, %s)"

values = [
    ("huazi", "123456"),
    ("xiaoge", "67890"),
    ("hahaha", "45678")
]

#执行sql语句
cursor.executemany(sql, values)

#提交
db.commit()

#关闭游标
cursor.close()
#关闭连接
db.close()

删

python 复制代码
import pymysql

#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
                     port=3306,
                     user="huazi",
                     password="123456",
                     charset="utf8mb4")

#创建一个游标
cursor = db.cursor()

#选择操作的数据库
db.select_db("test")

#写一条sql语句
sql = "delete from user where username=%s"

name = ('xiaoge',)

#执行sql语句
cursor.execute(sql, name)

#提交
db.commit()

#关闭游标
cursor.close()
#关闭连接
db.close()

使用with语句

  • with会自动关闭游标
python 复制代码
import pymysql

#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
                     port=3306,
                     user="huazi",
                     password="123456",
                     charset="utf8mb4")

db.select_db("view")

try:
    with db.cursor() as cursor:  # cursor = db.cursor()
        sql = "select * from student"
        cursor.execute(sql)
        data = cursor.fetchall()
        for i in data:
            print(i)
finally:
    db.close()

总结

  • 写DML语句时(insert,update,delete)需要commit提交,select查询语句不需要commit提交
相关推荐
多客:duokelijie8 小时前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
PingCAP8 小时前
平凯星辰上榜!2026 年胡润全球独角兽企业
数据库
PingCAP8 小时前
轨道交通 AFC 系统升级,平凯 Loop 把跨部门协同变成可追溯闭环
数据库
1-1=08 小时前
C# 委托与事件
开发语言·c#
Fuyo_11199 小时前
C++ 运行时多态与虚函数机制全面剖析【面试重点】
开发语言·c++·面试
武天旭9 小时前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
w_zero_one9 小时前
递归算法(一)
java·开发语言·算法
java_logo10 小时前
Docker 部署 CloudBeaver:轻松搭建网页数据库管理平台
数据库·docker·容器·数据库管理·dbeaver·轩辕镜像·cloudbeaver
视觉小萌新10 小时前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json
Julien200410 小时前
管理机密(一)
运维·服务器·开发语言·学习方法