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是一个字符串paramstuple, list or dict
executemany(sql, params) 用于批量执行sql语句sql是一个字符串paramstuplelist
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提交
相关推荐
花酒锄作田10 小时前
使用 pkgutil 实现动态插件系统
python
前端付豪14 小时前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
曲幽15 小时前
FastAPI实战:打造本地文生图接口,ollama+diffusers让AI绘画更听话
python·fastapi·web·cors·diffusers·lcm·ollama·dreamshaper8·txt2img
老赵全栈实战15 小时前
Pydantic配置管理最佳实践(一)
python
jiayou6420 小时前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
阿尔的代码屋21 小时前
[大模型实战 07] 基于 LlamaIndex ReAct 框架手搓全自动博客监控 Agent
人工智能·python
AI探索者2 天前
LangGraph StateGraph 实战:状态机聊天机器人构建指南
python
AI探索者2 天前
LangGraph 入门:构建带记忆功能的天气查询 Agent
python
FishCoderh2 天前
Python自动化办公实战:批量重命名文件,告别手动操作
python
躺平大鹅2 天前
Python函数入门详解(定义+调用+参数)
python