PyMySQL模块怎么用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关PyMySQL模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。官方教程import pymysql.cursors# 连接数据库
千家信息网最后更新 2026年11月01日PyMySQL模块怎么用
这篇文章将为大家详细讲解有关PyMySQL模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
官方教程
import pymysql.cursors# 连接数据库connection = pymysql.connect(host='localhost', user='user', password='passwd', db='db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)try: with connection.cursor() as cursor: # 增加一条数据 sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" cursor.execute(sql, ('webmaster@python.org', 'very-secret')) connection.commit() with connection.cursor() as cursor: # 查询数据 sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s" cursor.execute(sql, ('webmaster@python.org',)) result = cursor.fetchone() print(result)finally: connection.close()备查
# 获取输入SQL语句的光标对象,指定返回的数据格式为字典格式cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 执行sql语句cursor.execute(sql, (username, pwd))# 提交事务conn.commit()# 获取单条查询数据ret = cursor.fetchone()# 返回所有数据ret = cursor.fetchall()# 回滚conn.rollback()
基本使用
# 导入模块import pymysqlusername = input("请输入用户名: ")pwd = input("请输入密码: ")# 连接数据库conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" )# 获取输入SQL语句的光标对象cursor = conn.cursor()# 定义要执行的SQL语句sql = "select * from info WHERE username=%s and password=%s;"# 执行sql语句,让pymysql帮我们拼接SQL语句cursor.execute(sql, (username, pwd))# 关闭光标对象cursor.close()# 关闭数据库连接conn.close()返回字典格式的数据
# 获取输入SQL语句的光标对象,指定返回的数据格式为字典格式cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
增删改查操作
增
import pymysql# 获取用户输入username = input("请输入用户名: ")pwd = input("请输入密码: ")# 连接数据库conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" )# 获取输入SQL语句的光标对象cursor = conn.cursor()# sql语句sql = "insert into info (username, password) VALUES (%s, %s);"# 执行sql语句cursor.execute(sql, [username, pwd])# 提交conn.commit()# 关闭光标对象和连接cursor.close()conn.close()插入数据失败回滚
在执行增删改操作时,如果不想提交前面的操作,可以使用 rollback() 回滚取消操作。
import pymysql# 获取用户输入username = input("请输入用户名: ")pwd = input("请输入密码: ")# 连接数据库conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" )# 获取输入SQL语句的光标对象cursor = conn.cursor()# 拼接sql语句sql = "insert into info (username, password) VALUES (%s, %s);"# 执行sql语句# 让pymysql帮我们拼接SQL语句(传入的参数可以是列表也可以是元祖,一定要是一个可迭代对象)try: cursor.execute(sql, [username, pwd]) # 提交 conn.commit()except Exception as e: print("报错啦:", str(e)) conn.rollback() # 回滚# 关闭光标对象和连接cursor.close()conn.close()获取插入数据的ID(关联操作时会用到)
import pymysql# 获取用户输入username = input("请输入用户名: ")pwd = input("请输入密码: ")# 连接数据库conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" )# 获取输入SQL语句的光标对象cursor = conn.cursor()# 拼接sql语句sql = "insert into info (username, password) VALUES (%s,%s);"# 执行sql语句cursor.execute(sql, [username, pwd])# 提交conn.commit()# 提交之后,获取刚插入的数据的IDlast_id = cursor.lastrowid# 关闭光标对象和连接cursor.close()conn.close()批量执行
import pymysql# 连接数据库conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" )# 获取光标对象cursor = conn.cursor()data = [("奔驰哥", 123456), ("小宝宝", 123456), ("教主", 123456)]# sql语句sql = "insert into info(username, password) VALUES (%s, %s)"# 批量插入cursor.executemany(sql, data)# 提交conn.commit()# 关闭光标对象和连接cursor.close()conn.close()删
import pymysql# 连接数据库conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" )# 获取光标对象cursor = conn.cursor()# sql语句sql = "delete from info where id=%s"# 执行SQL语句cursor.execute(sql, [1])# 提交事务conn.commit()# 关闭光标对象和连接cursor.close()conn.close()
改
import pymysql# 连接数据库conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" )# 获取输入SQL语句的光标对象cursor = conn.cursor()# sql语句sql = "update info set password=%s where id=%s"password = "654321"id = 2cursor.execute(sql, [password, id])conn.commit()cursor.close()conn.close()
查
查询单条数据
import pymysql# 连接数据库conn = pymysql.connect(host="localhost", port=3306, database="userinfo", user='root', password="123456", charset="utf8" )# 获取输入SQL语句的光标对象,指定返回的数据格式为字典格式cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)sql = "select * from info"# 提交事务cursor.execute(sql)# 获取单条查询数据ret = cursor.fetchone()# 返回所有数据ret = cursor.fetchall() # 关闭光标和连接cursor.close()conn.close()
进阶用法
查询后光标就会移动,下次查询就会再上次查询的数据之后开始新的查询
# 可以获取指定数量的数据cursor.fetchmany(3)# 光标按绝对位置移动1cursor.scroll(1, mode="absolute")# 光标按照相对位置(当前位置)移动1cursor.scroll(1, mode="relative")
错误处理
| 异常 | 描述 |
|---|---|
| Warning | 当有严重警告时触发,例如插入数据是被截断等等。 |
| Error | 警告以外所有其他错误类。 |
| InterfaceError | 当有数据库接口模块本身的错误(而不是数据库的错误)发生时触发。 |
| DatabaseError | 和数据库有关的错误发生时触发。 |
| DataError | 当有数据处理时的错误发生时触发,例如:除零错误,数据超范围等等。 |
| OperationalError | 指非用户控制的,而是操作数据库时发生的错误。例如:连接意外断开、 数据库名未找到、事务处理失败、内存分配错误等等操作数据库是发生的错误。 |
| IntegrityError | 完整性相关的错误,例如外键检查失败等。 |
| InternalError | 数据库的内部错误,例如游标(cursor)失效了、事务同步失败等等。 |
| ProgrammingError | 程序错误,例如数据表(table)没找到或已存在、SQL语句语法错误、 参数数量错误等等。 |
| NotSupportedError | 不支持错误,指使用了数据库不支持的函数或API等。例如在连接对象上 使用.rollback()函数,然而数据库并不支持事务或者事务已关闭。 |
关于"PyMySQL模块怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
数据
语句
光标
数据库
输入
对象
错误
用户
查询
事务
格式
模块
字典
密码
用户名
位置
篇文章
生时
处理
支持
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手磨咖啡
美国互联网保险保险科技
互联网通讯科技
平安科技 互联网
致骋互联网科技
奇酷互联网络科技公司
上海致骋互联网科技
科技类的互联网平台
金融科技与互联网金融相同和不同
互联网科技产业特征
允成互联网科技有限公司融资
四川慕妮娅互联网科技有限公司
济南有互联网科技公司吗
中国互联网有什么科技
浙南科技城互联网大厦招聘
科技和互联网行业的特点
数字互联网科技有限公司
绵阳真晨互联网科技有限公司
互联网金融金融科技
如何强化互联网金融科技
互联网科技会
奇酷互联网络科技公司
郑州华宇互联网科技
互联网养老 桔豆科技
开启互联网科技时代小说
欧洲十大科技互联网公司
想开互联网科技公司怎么样
合肥互联网科技公司公章图片
山东星卡互联网科技有限公司官网
广州百诚互联网科技有限公司官网