PyMySQL模块怎么用
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章将为大家详细讲解有关PyMySQL模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。官方教程import pymysql.cursors# 连接数据库
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
2016网络安全展会
信息技术及网络安全服务
商品评论标签数据库设计
喜迎二十大网络安全征文范文
广州调度服务器报价
网络安全技术有限公司名字
肇庆销售软件开发设计
2020哈密网络安全宣传
中国有哪些网络安全专业大学
基站定位数据库 下载
应届软件开发项目经验怎么写
文明重启如何创造自己的服务器
小米云控应该选什么服务器
重庆服务器出售
魔兽世界各种服务器时间
软件开发属于计算机吗
acdee无法启动数据库
类似宗益堂软件开发
陕西手机软件开发语言
云丰云服务器哪个好
脱毛膏市场现状数据库
校园网站软件开发需求文档例
广州调度服务器报价
外模式是数据库的全局逻辑结构
杭州erp软件开发哪家好
accse数据库数据位数处理
科技园都是互联网企业吗
奉贤区自动化软件开发口碑推荐
数据库运输管理代码
云丰云服务器哪个好