热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:python数据库之pymysql模块(连接对象游标对象执行获取值或者提交事务)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python-数据库之pymysql模块(连接对象-游标对象-执行-获取值或者提交事务)相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python-数据库之pymysql模块(连接对象-游标对象-执行-获取值或者提交事务)相关的知识,希望对你有一定的参考价值。




1、pymysql模块安装与引入

安装


pip install PyMySQL

引入


import pymysql


2、数据库的操作

下图查找连接数据库,源码的方法,以及参数怎么配置的可参考

 

数据库的操作步骤:

步骤1:引入pymysql模块 import pymysql
步骤2:连接数据库,返回连接对象 注意:charset="utf8"指定编码方式,没有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")
步骤3:创建一个游标对象
cur = con.cursor()
步骤4:执行的sql语句
sql = "SELECT * FROM python.cfl_emp;"
步骤5:通过execute方法执行sql语句
res = cur.execute(sql) # 返回的是记录条数
步骤6:获取查询结果
# 获取查询到的返回集中的第一条数据
data_fetchOne= cur.fetchone()
print(f"获取查询到的返回集中的第一条数据,data_fetchOne= cur.fetchone() \\n结果:{data_fetchone}")
# 获取查询到的所有数据
# 返回的是一个元组嵌套元组的数据
data_fetchall = cur.fetchall()
print(f"获取查询到的返回集中的所有数据,data_fetchall = cur.fetchall() \\n结果:{data_fetchall}")


# 引入pymysql模块
import pymysql
# 步骤1:连接数据库,返回连接对象
#
charset="utf8"指定编码方式,没有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")
# 步骤2:创建一个游标对象
cur = con.cursor()
# 步骤3:执行的sql语句
sql = "SELECT * FROM python.cfl_emp;"
# 步骤4:通过execute方法执行sql语句
res = cur.execute(sql) # 返回的是记录条数
print(res)
# 步骤5:获取查询结果
# 获取查询到的返回集中的第一条数据
data_fetchOne= cur.fetchone()
print(f"获取查询到的返回集中的第一条数据,data_fetchOne= cur.fetchone() \\n结果:{data_fetchone}")
# 获取查询到的所有数据
#
返回的是一个元组嵌套元组的数据
data_fetchall = cur.fetchall()
print(f"获取查询到的返回集中的所有数据,data_fetchall = cur.fetchall() \\n结果:{data_fetchall}")

 

 注意点:pymysql模块操作数据时,默认开启的事务
 在事务提交之前,所有对数据库进行修改的操作都不会同步到数据库
只有在提交事务之后,才会同步到数据
提交事务:连接对象.commit()


# 引入pymysql模块
import pymysql
# 步骤1:连接数据库,返回连接对象
#
charset="utf8"指定编码方式,没有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")
# 步骤2:创建一个游标对象
cur = con.cursor()
# 步骤3:执行的sql语句
select_sql = "select name from python.cfl_emp where id = 6;"
cur.execute(select_sql)
name_b
= cur.fetchall()
print(f"事务提交前:name为{name_b}")
update_sql
= "UPDATE python.cfl_emp SET name = \'钱一3\' WHERE id = 6;"
cur.execute(update_sql)
# 注意点:pymysql模块操作数据时,默认开启的事务
#
在事务提交之前,所有对数据库进行修改的操作都不会同步到数据库
#
只有在提交事务之后,才会同步到数据
#
提交事务:连接对象.commit()

con.commit()
cur.execute(select_sql)
name_a
= cur.fetchall()
print(f"事务提交前:name为{name_a}")

执行结果:

 

 


3、简单封装数据库的操作-查询与增删改操作(因为修改需要提交事务)

分为查询和增删改操作
增删改操作需要连接对象.commit()

 简单封装如下:


""
封装一个做作mysql数据库的类
封装的功能:
1、数据的查询操作
2、增删改操作
"""
import pymysql
class MysqlBD:
# __init__创建对象的时候初始化操作
def __init__(self):
self.con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")
self.cur = self.con.cursor()
# 数据的查询操作
def find(self,sql):
self.cur.execute(sql)
datas = self.cur.fetchall()
return datas
# 增删改操作
def update(self,sql):
self.cur.execute(sql)
self.con.commit()


if __name__ == \'__main__\':
db
= MysqlBD()
select_sql
= "select name from python.cfl_emp where id = 6;"
res
= db.find(select_sql)
print(f"查询结果:{res}")
update_sql
= "UPDATE python.cfl_emp SET name = \'钱一1\' WHERE id = 6;"
res_1
= db.update(update_sql)
select_sql
= "select name from python.cfl_emp where id = 6;"
res1
= db.find(select_sql)
print(f"查询结果:{res1}")

执行结果:

 



推荐阅读
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • SQL Server开发技巧:修改表结构后的视图批量更新方法与实践 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 在深入掌握Spring框架的事务管理之前,了解其背后的数据库事务基础至关重要。Spring的事务管理功能虽然强大且灵活,但其核心依赖于数据库自身的事务处理机制。因此,熟悉数据库事务的基本概念和特性是必不可少的。这包括事务的ACID属性、隔离级别以及常见的事务管理策略等。通过这些基础知识的学习,可以更好地理解和应用Spring中的事务管理配置。 ... [详细]
  • 本文探讨了如何在C#应用程序中通过选择ComboBox项从MySQL数据库中检索数据值。具体介绍了在事件处理方法 `comboBox2_SelectedIndexChanged` 中可能出现的常见错误,并提供了详细的解决方案和优化建议,以确保数据能够正确且高效地从数据库中读取并显示在界面上。此外,还讨论了连接字符串的配置、SQL查询语句的编写以及异常处理的最佳实践,帮助开发者避免常见的陷阱并提高代码的健壮性。 ... [详细]
  • 数据库多表联合查询:内连接与外连接详解
    在数据库的多表查询中,内连接和外连接是两种常用的技术手段。内连接用于检索多个表中相互匹配的记录,即只有当两个表中的记录满足特定的连接条件时,这些记录才会被包含在查询结果中。相比之下,外连接则不仅返回匹配的记录,还可以选择性地返回不匹配的记录,具体取决于左外连接、右外连接或全外连接的选择。本文将详细解析这两种连接方式的使用场景及其语法结构,帮助读者更好地理解和应用多表查询技术。 ... [详细]
  • 提升Android开发效率:Clean Code的最佳实践与应用
    在Android开发中,提高代码质量和开发效率是至关重要的。本文介绍了如何通过Clean Code的最佳实践来优化Android应用的开发流程。以SQLite数据库操作为例,详细探讨了如何编写高效、可维护的SQL查询语句,并将其结果封装为Java对象。通过遵循这些最佳实践,开发者可以显著提升代码的可读性和可维护性,从而加快开发速度并减少错误。 ... [详细]
  • 在探讨 MySQL 正则表达式 REGEXP 的功能与应用之前,我们先通过一个小实验来对比 REGEXP 和 LIKE 的性能。通过具体的代码示例,我们将评估这两种查询方式的效率,以确定 REGEXP 是否值得深入研究。实验结果将为后续的详细解析提供基础。 ... [详细]
  • 如何使用mysql_nd:Python连接MySQL数据库的优雅指南
    无论是进行机器学习、Web开发还是爬虫项目,数据库操作都是必不可少的一环。本文将详细介绍如何使用Python通过 `mysql_nd` 库与 MySQL 数据库进行高效连接和数据交互。内容涵盖以下几个方面: ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • GDB 使用心得与技巧总结
    在使用 GDB 进行调试时,可以采用以下技巧提升效率:1. 通过设置 `set print pretty on` 来美化打印输出,使数据结构更加易读;2. 掌握常见数据结构的打印方法,如链表、树等;3. 利用 `info locals` 命令查看当前作用域内的所有局部变量;4. 在需要进行类型强制转换时,正确使用语法,例如 `p (Test::A *) pObj`。这些技巧能够显著提高调试的便捷性和准确性。 ... [详细]
author-avatar
穿脚蹼的鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有