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提交
相关推荐
测试199810 分钟前
如何编写好的测试用例?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
liulilittle13 分钟前
备忘录设计模式 vs 版本设计模式
开发语言·c++·算法·设计模式
飞翔的佩奇16 分钟前
Java项目:基于SSM框架实现的济南旅游网站管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
java·数据库·mysql·毕业设计·ssm·旅游·毕业论文
煜36416 分钟前
C++继承
开发语言·c++
2301_7639947124 分钟前
类和对象(下)
开发语言·c++
Dreamsi_zh25 分钟前
Python爬虫04_Requests豆瓣电影爬取
开发语言·爬虫·python
230L1_78M69Q5487H26 分钟前
【机器学习】机器学习新手入门概述
人工智能·python·机器学习·scikit-learn
rannn_11126 分钟前
【MySQL学习|黑马笔记|Day3】多表查询(多表关系、内连接、外连接、自连接、联合查询、子查询),事务(简介、操作、四大体系、并发事务问题、事务隔离级别)
数据库·笔记·后端·学习·mysql
绿炮火34 分钟前
【MATLAB】(一)简介
开发语言·数学建模·matlab
超浪的晨35 分钟前
JavaWeb 进阶:Vue.js 与 Spring Boot 全栈开发实战(Java 开发者视角)
java·开发语言·前端·javascript·vue.js·html·个人开发