热门标签 | 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}")

执行结果:

 



推荐阅读
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文将介绍由密歇根大学Charles Severance教授主讲的顶级Python入门系列课程,该课程广受好评,被誉为Python学习的最佳选择。通过生动有趣的教学方式,帮助初学者轻松掌握编程基础。 ... [详细]
  • 本文介绍如何使用 Python 将一个字符串按照指定的行和元素分隔符进行两次拆分,最终将字符串转换为矩阵形式。通过两种不同的方法实现这一功能:一种是使用循环与 split() 方法,另一种是利用列表推导式。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
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社区 版权所有