pymysql模块详解

embedded/2025/1/1 14:24:47/

华子目录

  • 简介
  • 安装`pymysql`
  • `连接对象`常用方法
  • `游标对象`常用方法
  • `数据库操作`
    • 批量增加
  • 使用`with`语句
  • 总结

简介

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

安装pymysql

#在终端命令中执行
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提交

http://www.ppmy.cn/embedded/143174.html

相关文章

知乎大数据开发面试题及参考答案

Java 两个线程之间是怎么通信的,属于哪种机制? 在 Java 中,线程间通信主要有以下几种方式: 共享变量:线程可以通过访问共享变量来进行通信。例如,一个线程修改一个共享的成员变量,另一个线程读取这个变量的值。但是这种方式需要注意线程安全问题。如果多个线程同时访问和…

STM32F030单片机AD采集应用总结

最近在设计一款产品的AD时,采集到的电压老是比输入电压0.2V左右,电路如图所示 查阅资料得知,STM32f030 的输入阻抗应小于 50K。于是将电阻改为 39K/10K,但情况依旧。随后,干脆将电阻值改为 3.9K/1K,虽有一定…

linux 压缩命令,压缩a目录,但是不压缩a目录下的b目录,zip命令

在 Linux 中使用 zip 命令来压缩目录时,可以通过排除特定的目录或文件来实现你的需求。具体来说,你可以使用 -r 选项递归地压缩目录,并使用 -x 选项来排除特定的目录或文件。 假设你要压缩 a 目录,但不包括 a 目录下的 b 目录&am…

基于Matlab自适应滤波和特征提取的雷达信号分选与去噪方法研究

随着雷达技术的广泛应用,雷达信号在军事、航空航天、交通监控、气象探测等领域的应用变得越来越重要。然而,雷达信号在传输过程中常常受到多种噪声源的干扰,这些噪声干扰会严重影响信号的质量,从而对目标检测、跟踪、识别等后续处…

浅谈YashanDB三权分立

什么是三权分立? 三权分立,即是对DBA的职责进行划分,定义不同管理职位具备并行使不同角色,互相限制和监督,从机制上尽可能地防止因误操作删除或修改不属于职责范围内的数据或对象,保障系统整体安全&#x…

数学题转excel;数学题库;数学试卷转excel;大风车excel

一、数学试卷转excel 有些需要刷题的朋友,需要将题库数学题转为excel格式,便于管理 前端时间帮一位朋友实现了数学题转excel,包括选择题、填空题、分析题 示例: 二、问题 数学题是最难以处理的试题,理由如下 1、有…

使用HTML5 Canvas创建流体动感Loading动画教程 | 高级前端动画实现指南

简介 本文将介绍如何使用HTML5 Canvas技术创建一个具有液体流动效果的Loading加载动画。这个动画结合了粒子效果和发光效果,创造出独特的视觉体验。 效果展示 实现原理 动画主要通过以下技术实现: Canvas 2D绘图上下文SVG滤镜实现粒子化效果JavaScript控制动画帧数学函数计…

C++设计模式之享元模式

动机 在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价。 如何在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地适用面向对象的方式来进行操作&#xff1…