当前位置: 首页 > news >正文

pymysql 与 MySQL数据库交互

pymysql是一个Python的第三方库,用于在Python程序中与MySQL数据库进行交互。它提供了一个简单而直接的接口,使开发人员可以轻松地连接、查询和操作MySQL数据库。

pymysql的主要特点包括:

  1. 简单易用:pymysql提供了简单而直观的API,使开发人员可以快速上手并使用它来连接和操作MySQL数据库。
  2. 高性能:pymysql采用纯Python实现,并通过使用C语言的MySQL API来提高性能。
  3. 支持事务:pymysql提供了事务功能,使开发人员能够执行复杂的数据库操作,并保持数据的一致性。
  4. 支持连接池:pymysql支持连接池,可以有效地管理数据库连接,提高性能和可扩展性。
  5. 支持多线程:pymysql对多线程的支持友好,可以在多线程环境中安全地使用。

使用pymysql,开发人员可以执行各种数据库操作,包括创建、删除和修改数据库,创建和删除表,以及插入、更新和删除数据等。通过pymysql,开发人员可以快速、方便地实现与MySQL数据库的交互,并且可以轻松地将其集成到Python应用程序中。

 

"""
python  操作数据库 pymysql
pip install pymysql
"""
# 1. 导入模块
import pymysql# 2. 构建连接实例
con = pymysql.connect(user="zzy", password='123456')
con.select_db("python2407")# 3. 构建游标(游动的鼠标,  用于执行sql语句)
cur = con.cursor()# 3.1 使用游标执行sql
row = cur.execute("show tables")
# 3.2 获取游标执行结果
print(f"发现{row}个表")# fetchall 获取所有
# datas = cur.fetchall()
# for data in datas:
#     print(data[0])# fetch 每次获取一个
# data = cur.fetchone()
# print(data[0])
# data = cur.fetchone()
# print(data[0])
# data = cur.fetchone()
# print(data[0])# fetchmany 获取指定个数
# datas = cur.fetchmany(size=3)
# print(datas)
#
# datas = cur.fetchmany(size=2)
# print(datas)# 取两个
datas = cur.fetchmany(size=2)
print(datas)
# 控制游标位置 相对偏移 正值前进 负值倒退
# cur.scroll(-1, mode='relative')# 控制游标位置  绝对位置偏移  只能是0-length-1
cur.scroll(2, mode='absolute')
data = cur.fetchone()
print(data)# 4. 关闭游标 关闭 连接
cur.close()
con.close()

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 开发团队如何应对突发的技术故障和危机?从网易云音乐故障谈起
  • 小程序路由传参和获取页面栈方法
  • 45.5【C语言】typedef
  • 设计模式(三)
  • ctfshow之web29~web51
  • 编译运行 llama.cpp (vulkan, Intel GPU SYCL)
  • 【数学分析笔记】第2章第4节收敛准则(1)
  • ES之二:centos7安装kibana和IK分词器
  • React的生命周期方法以及React 18之后的变化
  • 时序预测|基于贝叶斯BO-卷积-双向门控单元-注意力机制的单变量时间序列预测模型BO-CNN-BiGRU-Attention
  • SMF05C.TCT TVS二极管阵列用于ESD和锁定保护芯片IC
  • github源码指引:C++嵌入式WEB服务器
  • JAVA面试题--ES
  • 切面条(蓝桥杯-基础)
  • 【通信协议】SPI总线
  • SegmentFault for Android 3.0 发布
  • 07.Android之多媒体问题
  • Facebook AccountKit 接入的坑点
  • JavaScript DOM 10 - 滚动
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • java中的hashCode
  • JSDuck 与 AngularJS 融合技巧
  • Median of Two Sorted Arrays
  • Quartz初级教程
  • socket.io+express实现聊天室的思考(三)
  • Vue2.x学习三:事件处理生命周期钩子
  • vue-cli3搭建项目
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 解析 Webpack中import、require、按需加载的执行过程
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 那些年我们用过的显示性能指标
  • 浅谈web中前端模板引擎的使用
  • 算法系列——算法入门之递归分而治之思想的实现
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 我有几个粽子,和一个故事
  • 译有关态射的一切
  • Hibernate主键生成策略及选择
  • 正则表达式-基础知识Review
  • ​如何在iOS手机上查看应用日志
  • ###C语言程序设计-----C语言学习(6)#
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (04)odoo视图操作
  • (二)c52学习之旅-简单了解单片机
  • (二)linux使用docker容器运行mysql
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (六)DockerCompose安装与配置
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (转)Windows2003安全设置/维护
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Core 2.1路线图
  • .NET 分布式技术比较
  • .Net 执行Linux下多行shell命令方法
  • .stream().map与.stream().flatMap的使用