Python 数据库编程(Mysql)

目录

知识点

游标

提交事务

检索数据

回滚

关闭

增删改查

查询

新增

修改

删除

回滚的用法


知识点

游标

在Python中,数据库游标(cursor)是用于执行SQL语句并检索数据的对象。游标允许你在数据库中移动并操作数据。在使用Python进行数据库编程时,通常首先需要创建一个游标对象。这可以通过连接对象的cursor() 方法来实现

提交事务

在执行对数据库进行更改的操作后,需要调用连接对象的 commit() 方法来提交这些更改,它会生成一个connect对象,同时函数的参数也是固定好的,以确保它们被永久保存在数据库中

检索数据

执行SQL查询后,可以使用游标的 fetchall() ,fetchone() fetchmany() 方法检索查询结果

fetchall()用于从数据库游标中获取所有的查询结果行,并将其作为一个列表返回;通常用于对结果集不大的查询或者在确定结果集不会占用太多内存的情况下使用
fetchone()用于从数据库游标中获取下一行的查询结果;每次调用 fetchone(),游标会移动到结果集中的下一行,并返回该行的数据。如果到达结果集的末尾,fetchone() 将返回 None
fetchmany(size)用于从数据库游标中获取指定数量(size)的查询结果行,并将其作为一个列表返回;可以通过指定 size 参数来控制每次获取的行数,默认为游标的数组大小(arraysize)

回滚

在数据库操作中,"回滚"(Rollback)是指取消或撤销之前执行的一系列数据库操作,将数据库恢复到之前的状态。在 Python 中进行数据库查询的回滚通常涉及使用事务(Transaction)来管理数据库操作

关闭

关闭操作进行后,无法再进行操作,除非再次连接

# 关闭游标
cursor.close()# 关闭连接
conn.close()

这些是在Python中使用游标进行数据库操作时的基本操作。游标允许你执行SQL语句、处理结果集,并确保在完成操作后正确提交事务和关闭连接


增删改查

首先我们要导入mysql相关的包,如果下面有红色下划线的话,需要我们进行安装,我这里是利用的PyCharm,点击Alt+Enter键,选择安装Mysql-connector-python模块

也可以通过pip install mysql-connector-python进行安装

mysql.connector.connect()

这是 MySQL 官方提供的用于建立数据库连接的函数。它接受一系列参数,包括数据库主机名(host)、用户名(user)、密码(password)、以及要连接的数据库(database)名称

之后我们就可以利用上面学习的内容,进行对数据库的增删改查

查询

import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz'
)# 创建一个游标
cursor = conn.cursor()cursor.execute('select * from users')
rows = cursor.fetchall()
for row in rows:print(row)cursor.close()
conn.close()

事先在zzz数据库里面添加了一条数据,之后利用sql语句进行查询,可以看到查询成功了

新增

import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz'
)cursor = conn.cursor()# 插入语句
cursor.execute('insert into users(name,age,email) values(%s,%s,%s)', ("橙子味热果汁", 20, "12345678910"))# 提交数据的更改
conn.commit()cursor.close()
conn.close()

可以看到我们用sql语句新增了一条id为2的数据

修改

import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz'
)cursor = conn.cursor()# 更改数据
cursor.execute("update users set age = 18 where id = 1")conn.commit()cursor.close()
conn.close()

可以看到,我们id为 1 的 age 中的数据由原来的20修改为了18

删除

import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz'
)cursor = conn.cursor()cursor.execute("delete from users where id = 2")conn.commit()cursor.close()
conn.close()

可以看到刚才我们新建id为2的数据被删除掉了

回滚的用法

import mysql.connectortry:# 连接到 MySQL 数据库conn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz')# 创建一个游标对象cursor = conn.cursor()# 开始事务conn.start_transaction()# 执行一系列数据库操作cursor.execute("INSERT INTO users (name, age, email) VALUES ('John', 30, '666')")cursor.execute("UPDATE users SET age = 31 WHERE name = 'John'")# 模拟发生错误,例如除零错误# 由于错误发生在事务中,因此可以回滚事务并撤销之前的操作1 / 0# 提交事务(如果没有发生错误)conn.commit()except Exception as e:print("An error occurred:", e)# 回滚事务以撤销之前的操作conn.rollback()finally:# 关闭游标和连接cursor.close()conn.close()

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

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

相关文章

力扣Hot100-有效的括号(栈stack)

给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

【C++】哈希(2万字)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 unordered系列关联式容器 unordered_map unordered_map的文档介绍 unordered_map的接口说明 unordered_set 底层结构 哈希概念 哈希冲突 哈希函数 哈希…

Whisper-AT:抗噪语音识别模型(Whisper)实现通用音频事件标记(Audio Tagger)

1.概述: Whisper-AT 是建立在 Whisper 自动语音识别(ASR)模型基础上的一个模型。Whisper 模型使用了一个包含 68 万小时标注语音的大规模语料库进行训练,这些语料是在各种不同条件下录制的。Whisper 模型以其在现实背景噪音(如音乐…

探究 Meme 的金融与社交属性

原文标题:《A Social and Financial Study of Memecoins》撰文:Andrew Hong编译:Chris,Techub News 每一个市场周期都伴随着 Meme 代币的出现。一群人围绕着某个 Meme 集结起来,暂时抬高了某个资产的价格(从…

Github Copilot登录账号,完美支持chat

Github Copilot 代码补全等功能,提高写代码的效率 https://web.52shizhan.cn/activity/copilot 登录授权后,已经可以使用,完美。如图

大话设计模式学习笔记

目录 工厂模式策略模式备忘录模式(快照模式)代理模式单例模式迭代器模式访问者模式观察者模式解释器模式命令模式模板方法模式桥接模式适配器模式外观模式享元模式原型模式责任链模式中介者模式装饰模式状态模式 工厂模式 策略模式 核心:封装…

03.k8s常用的资源

3.k8s常用的资源 3.1 创建pod资源 k8s yaml的主要组成 apiVersion: v1 api版本 kind: pod 资源类型 metadata: 属性 spec: 详细上传nginx镜像文件,并且上传私有仓库里面 k8s_pod.yaml apiVersion: v1 kind: Pod metadata:name: nginxlabels:app: we…

Tuxera Ntfs For Mac 2023的具体使用方法

大家都知道由于操作系统的原因,在苹果电脑上不能够读写NTFS磁盘,但是,今天小编带来的这款tuxera ntfs 2024 mac 破解版,完美的解决了这个问题。这是一款在macOS平台上使用的磁盘读写软件,能够实现苹果Mac OS X系统读写…

Docker的数据管理(数据卷+数据卷容器)

文章目录 一、Docker的数据管理1、概述2、主要的技术(三种数据挂载方式)2.1、数据卷(Volumes)2.2、绑定挂载(Bind mounts)2.3、tmpfs挂载(Tmpfs mounts)2.4、之间的关系(…

示例丨医学、医药类查新点填写参考案例

根据《科技查新技术规范》GB/T 32003-2015,科学技术要点是必须要包含查新点内容的,而查新点就是科学技术要点中能够体现查新项目新颖性和技术进步的技术特征点。 在日常查新工作的接待中,我们发现医学、医药类查新合同上查新点的书写&#x…

计算机tcp/ip网络通信过程

目录 (1)同一网段两台计算机通信过程 (2)不同网段的两台计算机通信过程 (3)目的主机收到数据包后的解包过程 (1)同一网段两台计算机通信过程 如果两台计算机在同一个局域网中的同…

算法(九)希尔排序

文章目录 希尔排序简介代码实现 希尔排序简介 希尔排序(shell sort)选定一个小于N(数列长度)的整数gap作为第一增量,然后将所有距离为gap的元素分成一组,然后对每一组的元素进行插入排序。然后再取一个比前…

(1+X)Java程序设计高级(一)

Throwable:异常的基类,所有异常都继承自 java.lang.Throwable 类,Throwable 类有两个直接子类:Error 类和 Exception 类。Error:是 Java 应用程序本身无法恢复的严重错误,应用程序不需要捕获、处理这些严重…

7.1 Go 错误的概念

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【SQL每日一练】查询二进制树节点

文章目录 题目一、题析二、题解1.MySQL/SqlServer2.Oracle 题目 有一个表BST,其中包含两列:N和P,其中N表示二进制树中节点的值,P是N的父级。 编写一个查询,以查找按节点值排序的二进制树的节点类型。为每个节点输出以…

迅狐跨境电商系统源码:技术栈与多端集成

随着全球化贸易的不断深入,跨境电商系统源码成为了连接不同国家和地区消费者与商家的重要桥梁。本文将探讨跨境电商系统源码的技术栈以及如何通过多端集成来提升用户体验。 技术栈概览 跨境电商系统源码的技术栈是构建高效、稳定平台的基础。以下是构建跨境电商系…

OpenCV中的圆形标靶检测——背景概述

圆形标靶 如下图所示,相机标定中我们使用带有固定间距图案阵列的平板,来得到高精度的标靶像素坐标,进而计算得到相机的内参、畸变系数,相机之间的变换关系,和相机与世界坐标系的变换关系(即外参)。 不过标靶的形式多样,从图案类型来看常见的有棋盘格、圆形标靶…

音视频开发13 FFmpeg 音频 相关格式分析 -- AAC ADTS格式分析

这一节,我们学习常用的音频的格式 AAC,重点是掌握 AAC的传输格式 ADTS 头部的信息,目的是 : 当音频数据有问题的时候,如果是AAC的编码,在分析 头部信息的时候能够根据头部信息 判断问题是否出现在 头部。 A…

今天来讲讲,抖音小店商品的上架流程以及优化细节~

大家好,我是喷火龙。 做抖音小店选品选好之后,优化上架商品也是很重要的,也有很多需要注意的细节,今天就来给大家讲讲。 首先,软件采集,大致分为七步。 1. 以抖精灵为例,注册账号登录&#x…

到无穷大和更远,用分形更好

文章目录 一、说明二、分形到底是什么?三、更多更深刻的四、引进无穷小会产生什么样的怪事?五、希尔伯特曲线六、还有什么有趣的要补充的吗? 一、说明 ​​​​​​​数学领域有太多有趣的领域,领域我特别感兴趣。这是一个奇妙的…