热门标签 | 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(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 达人评测 酷睿i5 12450h和锐龙r7 5800h选哪个好 i512450h和r75800h对比
    本文介绍了达人评测酷睿i5 12450h和锐龙r7 5800h选哪个好的相关知识,包括两者的基本配置和重要考虑点。希望对你在选择时提供一定的参考价值。 ... [详细]
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社区 版权所有