python操作链接数据库和Mysql中的事务在python的处理

python操作数据库

  • pymysql模块:
 pip install pymysql
  • 作用:可以实现使用python程序链接mysql数据库,且可以直接在python中执行sql语句
添加操作

import pymysql
#1.创建链接对象c
conn = pymysql.Connect(host='127.0.0.1',#数据库服务器主机地址port=3306, #mysql的端口号user='root', #数据库的用户名password='xxxxxx', #数据库密码db='dbtest1',#数据仓库的名称charset='utf8') # 不要写utf-8
# 创建一个游标对象
cusor= conn.cursor()
print(conn)
# 2.增加记录操作
sql = 'insert into temp (name,sex,age,dep_id) values ("%s","%s",%d,%d)'%('haha','female',20,200)
cusor.execute(sql)
conn.commit() #对数据进行整改后,记得进行事物的提交
#关闭打开的资源对象
cusor.close()
conn.close()

在这里插入图片描述

删除操作
# 3.删除记录
sqls = 'delete from temp where name = "%s"'%'haha'
print(sqls)
# cusor.execute(sqls)
# conn.commit()

在这里插入图片描述

修改操作
new_age = input('enter a new age:')
new_age = int(new_age)
sql = 'update temp set age = %d where id = 3'%new_age
print(sql)
cusor.execute(sql)
conn.commit()

在这里插入图片描述

查询操作
查询全部
sql = 'select * from temp where age > 30'
cusor.execute(sql)  # 负责执行sql语句
# fetchall 返回的是元组套用元组
all_data = cusor.fetchall() #获取查询到所有的数据,如果没有查询到数据返回一个空元组
print(all_data)
print(len(all_data))

在这里插入图片描述

查询第一条
sql = 'show tables' #sql语句
cusor.execute(sql)  #执行sql语句
one = cusor.fetchone()  #获取一条数据
print('one:',one)
print('one:',one[0])

在这里插入图片描述

查询多条
many = cusor.fetchmany(3) #获取指定条数的数据,不写默认为1
print('many:',many)

在这里插入图片描述

关闭连接对象
# # # 关闭打开的资源对象
cursor.close()
conn.close()

关于mysql中的事务

什么是事物?

  • Mysql的事物主要是指一组处理操作量大,复杂度高的数据的操作。
  • 事务其实就是MySQL中处理数据的一种方式,主要用在数据完整性高,数据之间依赖性大的情况下的一种数据处理方式.
  • 举个例子
  • ,在小张点击了确认转账的按钮时,系统突然崩溃了.会出现这样几中不正确的情况:
    • 1.小张的钱打到小李的账户上,但是自己的账户上的钱没被扣.
    • 2.小张的钱打没到小李的账户上了,但是自己账户上的钱被扣.
    • 这样的业务场景就需要MySQL事务保持,即使机器出故障的情况下,数据仍然是正确的.
import pymysql
#1.创建链接对象
conn = pymysql.Connect(host='127.0.0.1',#数据库服务器主机地址port=3306, #mysql的端口号user='root', #数据库的用户名password='xxxxx', #数据库密码db='dbtest1',#数据仓库的名称charset='utf8')
#创建一个游标对象
cusor = conn.cursor()#小张向小李的银行卡打200块钱
sql1 = 'update bankTab set monry -= 200 where name = "小张"'
sql2 = 'update bankTab set monry += 200 where name = "小李"'try:cusor.execute(sql1) #成功执行cusor.execute(sql2) #发成异常# 不提交 不会对数据库有变化conn.commit() #说明转账成功,数据就写死到数据库,没有办法在回撤
except Exception as e:print(e)conn.rollback() #事物的回滚:将try中执行成功的sql效果撤回cusor.close()
conn.close()
事务的特点:
  • 事物的特点

    • 原子性
      • 一个事务必须被作为一个不可分割的最小工作单元,每个事务中的所有操作必须要么成功,或者要么失败,不能一些成功一些失败。
    • 一致性
      • 一致性就像上面举的一个例子一样,当发生异常情况下,数据仍然是正确的.就是说当一个事务执行失败了,数据之间是不会受异常的情况而影响,永远保持着他的正确性.
    • 隔离性
      • 当一个事务还未提交,每个事务之间是相互隔离的,互补受到影响.
    • 持久性
      • 当一个事务进行提交之后,发生的变化就会永远保存在数据库中.
  • 事物的提交和回滚

    • commit
    • rollback

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/137377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过postgis空间库导入sql格式的矢量数据到arcgis中

1、在postgis中创建数据库 命名为test3 2、创建空间扩展 3、导入sql矢量文件 进入psql.exe目录中 进入dos命令框中 输入命令,其中host输入自己的主机ip,database为自己的数据库名称,数据路径修改为自己电脑上的路径,注意反斜杠 psql

Node.js |(七)express案例实践:记账本 | 尚硅谷2023版Node.js零基础视频教程

文章目录 📚基本结构搭建📚响应静态网页📚获取表单数据📚借助lowdb保存账单信息📚完善成功提醒📚账单列表📚删除账单📚final 学习视频:尚硅谷2023版Node.js零基础视频教程…

MySQL–第4关:查询用户日活数及支付金额

MySQL–第4关:查询用户日活数及支付金额 – WhiteNights Site 标签:MySQL 非常好的题,爱来自中国。 题目 没啥用 任务描述 现有3张业务表,详见如下: 需要输出结果如下,没有支付的日期不需要显示,请写出对…

前端缓存机制——强缓存、弱缓存、启发式缓存

强缓存和弱缓存的主要区别是主要区别在于缓存头携带的信息不同。 强缓存: 浏览器发起请求,查询浏览器的本地缓存,如果找到资源,则直接在浏览器中使用该资源。若是未找到,或者资源已过期,则浏览器缓存返回未…

Python最基础的五个部分代码,零基础也能轻松看懂。

文章目录 前言一、表达式二、赋值语句三、引用四、分支语句五、循环语句关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼…

K8S知识点(七)

(1)实战入门-Namespace kubernets:系统创建的资源在这个命名空间里 ,集群组件资源 kubrnets组件也是以pod的形式运行的 命令行方式操作 查看namespace和详情: 创建和查看和删除: 使用过配置文件操作&am…

leetcode做题笔记226. 翻转二叉树

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出:[2,3,1]示例 3&#x…

查找或替换excel换行符ctrl+j和word中的换行符^p,^l

一、excel中 直接上图。使用ctrlh调出替换,查找内容里按ctrlj(会出现一个闪的小点),即为换行符。 二、word中 在word中,^p和^l分别代表换行符(enter)和手动换行符(使用shiftenter&…

Python使用Numba装饰器进行加速

Python使用Numba装饰器进行加速 前言前提条件相关介绍实验环境Numba装饰器进行加速未加速的代码输出结果 numba.jit加速的代码输出结果 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Python日常小操作专栏、Ope…

效率提升75%!要做矩阵号,更要做好矩阵号管理

在如今的信息数字化时代,面对竞争日趋激烈的市场,数字化转型成为了企业提高效率和竞争力、实现可持续发展的重要手段。 这一两年来,我们也发现,越来越多的品牌企业开始探索数字化转型的实践,通过使用自建或者采买的数据…

node插件MongoDB(四)—— 库mongoose 的个性话读取(字段筛选、数据排序、数据截取)(四)

文章目录 一、字段筛选二、数据排序三、数据截取1. skip 跳过2. limit 限定![在这里插入图片描述](https://img-blog.csdnimg.cn/c7067b1984ee4c6686f8bbe07cae9176.png) 一、字段筛选 字段筛选:只读取指定的数据,比如集合(表)中有…

uniapp:打包ios配置隐私协议框

使用uniapp打包ios 上架商店需要配置隐私协议政策弹窗。当用户点击确定后才能继续操作。 首先manifest.json中配置使用原生隐私政策提示框是不支持ios的。不用勾选。 解决思路: 1、新建页面:iosLogin.vue,pages.json中 这个页面需要放在第一…

MacOS升级后命令行出现xcrun: error: invalid active developer path报错信息

在Mac上用g编译cpp文件时,出现以下(类似于工具环境问题的)报错: 解决方案:重新安装最新版的MacOS Command Line Tools xcode-select --install重新尝试编译: 编译成功(忽略这个warning&…

GPT最佳实践:五分钟打造你自己的GPT

前几天OpenAI的My GPTs栏目还是灰色的,就在今天已经开放使用了。有幸第一时间体验了一把生成自己的GPT,效果着实惊艳!!!我打造的GPT模型我会放到文章末尾,大家感兴趣也可以自己体验一下。 打造自己的GPT模型…

Linux学习之进程三

目录 进程控制 fork函数 什么是写时拷贝 进程终止 mian函数的返回值 退出码 错误码 exit() 进程等待 1.什么是进程等待? 2.为什么要进行进程等待? 3.如何进程进程等待? wait,waitpid: waitpid 进程替换 …

Kibana Dashboard饼图展示keyword子字符串去重统计

日志内容 log.info("请求开始 uri: {} header RequestId:{}", request.getRequestURI(), reqId, request.getHeader("request_id"));操作步骤 进入Dashboard菜单 点击Create Dashboard按钮 点击Create Panel按钮 选择Aggregation based 然后选择Pie饼图 …

开源论道 源聚一堂@COSCon

自2015年以来,开源高峰论坛一直是中国开源年会中的传统亮点项目。本次在COSCon23 大会期间的高峰圆桌会,于2023年10月29日在成都高新区的菁蓉汇召开。 本次高峰圆桌上,我们特别邀请了20 位来自企业,基金会和社区的专家和领袖参加讨…

京东数据分析:2023年10月京东洗衣机行业品牌销售排行榜

鲸参谋监测的京东平台10月份洗衣机市场销售数据已出炉! 10月份,洗衣机市场整体销售呈上升走势。鲸参谋数据显示,今年10月,京东平台洗衣机市场的销量为143万,环比增长约23%,同比增长约1%;销售额约…

AI:76-基于机器学习的智能城市交通管理

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

物联网AI MicroPython学习之语法 ustruct 打包和解压原始数据类型

学物联网,来万物简单IoT物联网!! ustruct 介绍 ustruct提供打包和解压原始数据类型的功能。 默认情况下,C类型以机器的本机格式和字节顺序表示,并在必要时通过跳过填充字节来正确对齐(根据C编译器使用的规…