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提交
相关推荐
Java后端的Ai之路17 小时前
【Python 教程15】-Python和Web
python
冬奇Lab18 小时前
一天一个开源项目(第15篇):MapToPoster - 用代码将城市地图转换为精美的海报设计
python·开源
剩下了什么19 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
山峰哥20 小时前
数据库工程与SQL调优——从索引策略到查询优化的深度实践
数据库·sql·性能优化·编辑器
较劲男子汉20 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
灰子学技术20 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
java搬砖工-苤-初心不变20 小时前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
二十雨辰21 小时前
[python]-AI大模型
开发语言·人工智能·python
Yvonne爱编码21 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚21 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言