PyMySQL模块怎么用
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章将为大家详细讲解有关PyMySQL模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。官方教程import pymysql.cursors# 连接数据库
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
数据库应用技术文科
学好网络安全的计划
2021网络安全成本
梦幻西游端游群星璀璨服务器
深圳穆清网络技术有限公司
如何管理多台串口服务器
分布式实时数据库报价
服务器人员如何维护网络
门头沟区管理软件开发
书《网络技术的发展》
英文二次文献数据库
曙光服务器400电话
梦幻西游服务器怎么挤进去
关于共享网络安全的诗
字符型与数值型比较大小数据库
gee服务器认证失败
常见计算机网络技术销售公司
历史上网络安全危机
修改数据库配置文件
gdc服务器安全门关不上
新型网络安全教育班会模板
php 查询数据库条数
fastadmin备份数据库
图书馆购买了以下哪些数据库
sql数据库可以提供视图吗
网络运营商数据库泄漏
无锡光学建模软件开发
互联网领先科技奖
c程序与软件开发
内蒙古地理国情数据库