08 - python操作mysql

认识pymysql

借助pymysql模块,这是一个python编写的MYSQL驱动程序,借助它来操作数据库。

操作数据库的流程和java 使用原生的JDBC操作数据的流程步骤差不多。

安装pymysql

pip install pymysql

操作步骤

导入pymysql模块

import pymysql

创建数据库连接对象

conn = pymysql.connect(参数列表)- host: 连接的mysql主机地址
- port: 连接的端口
- database: 连接的数据库名称
- user: 连接的用户面
- password: 连接密码
- charset: 连接采用的编码方式,推荐使用utf-8conn.close(): 关闭连接
conn.commit(): 提交数据
conn.rollback(): 撤销数据

获取操作游标对象

使用游标对象,完成对数据库的增删改查操作

cur = conn.cursor()- execute(语句): 执行操作数据库的语句
- fetchone(): 获取查询结果集中的一条数据,返回一个元组
- fetchall(): 获取查询结果集中的所有数据,返回一个元组
- close(): 关闭游标对象

使用示例

获取一条用户数据

示例

# 导入操作数据库的模块
import pymysql# 创建数据库连接对象
conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="123456",database="test",charset="utf8")# 获取游标对象
cursor = conn.cursor()# 执行操作语句
sql = "select * from user;"
cursor.execute(sql)# 获取查询结果集
row = cursor.fetchone()
print(row)# 关闭游标
cursor.close()# 关闭连接
conn.close()

运行结果

('10000', 'admin', 'admin', '00', '', None, '', None, '', '', '94450247b4faaabacd7f71ab19da03e6', '0', datetime.datetime(2024, 1, 8, 10, 17, 47), None, 0, '管理员用户')

获取所有数据

示例

# 导入操作数据库的模块
import pymysql# 创建数据库连接对象
conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="123456",database="test",charset="utf8")# 获取游标对象
cursor = conn.cursor()# 执行操作语句
sql = "select * from user;"
cursor.execute(sql)# 获取查询结果集
row = cursor.fetchall()
print(row)# 关闭游标
cursor.close()# 关闭连接
conn.close()

这里获取到的就是数据库user表里所有的数据。

数据库的增删改

示例

# 导入操作数据库的模块
import pymysql# 创建数据库连接对象
conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="123456",database="test",charset="utf8")# 获取游标对象
cursor = conn.cursor()# 执行操作语句
# 增加操作 sql = "insert语句"
# 修改操作 sql = "update语句"
# 删除操作 sql = "delete语句"try:cursor.execute(sql)# 手动提交事务conn.commit()
except:# 如果报错就回滚conn.rollback()# 获取查询结果集
row = cursor.fetchall()
print(row)# 关闭游标
cursor.close()# 关闭连接
conn.close()

重要的是手动提交事务,和对数据库操作失败时进行回滚的操作。

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

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

相关文章

基于CNN+LSTM深度学习网络的时间序列预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 卷积神经网络(CNN) 4.2 长短时记忆网络(LSTM) 4.3 CNNLSTM网络结构 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MA…

Java设计模式大全:23种常见的设计模式详解(一)

本系列文章简介: 设计模式是在软件开发过程中,经过实践和总结得到的一套解决特定问题的可复用的模板。它是一种在特定情境中经过验证的经验和技巧的集合,可以帮助开发人员设计出高效、可维护、可扩展和可复用的软件系统。设计模式提供了一种在…

将程序做成系统服务 shell脚本

要将程序做成系统服务,你可以使用Shell脚本来创建一个systemd服务单元文件。下面是一个示例的Shell脚本,用于创建一个名为my_service的服务单元文件: #!/bin/bash# 定义服务的名称和描述 SERVICE_NAME"my_service" DESCRIPTION&quo…

【手写数据库toadb】toadb表数据文件存储结构,创建表与插入数据在物理文件层的流程,行列混合存储新增分组文件结构介绍

12 数据库表物理存储结构 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上ta…

二进制可执行文件的常见后缀

有关二进制程序 二进制程序是一种由机器代码【机器代码是一种由计算机硬件理解和执行的低级指令集】组成的程序,它由计算机直接执行。二进制程序通常是由高级编程语言编译而来,经过编译器的处理将高级代码转换为机器代码。在不同的操作系统上&#xff0…

【Mysql】基本语法(数据操作+表结构操作)

一:数据操作 1.数据库(库名) create database 数据库名 //创建数据库 use 数据库名 //选择数据库 drop database 数据库名 //删除数据库[rootxibushuma ~]# mysql db2 -e show tables 不登录mysql 情况下&…

架构学习(四):scrapy下载中间件实现动态切换User-Agent

scrapy下载中间件实现动态与固定UserAgent 前言关卡:实现动态切换User-Agentscrapy设置User-Agent方式梳理User-Agent生效梳理为何选择在下载中间件中实现自定义User-Agent下载中间件 结束 前言 请求头User-Agent是比较常规的反爬手段,不同站点对其检测…

thinkphp6入门(17)-- 网站开发中session、cache、cookie的区别

Session(会话): 定义: Session是一种用于在服务器端存储用户信息的机制,以跟踪用户的状态。 数据存储位置: 存储在服务器端,可以存在于内存、数据库或文件系统中。 生命周期: 存在于用户访问应…

sql——如果查到的值为空,则显示给出的默认值

mysql中使用ifnull,Oracle使用NVL 一,mysql IFNULL(expr1, expr2)IFNULL函数接受两个参数,如果expr1为NULL,则返回expr2的值,否则返回expr1的值。 例如, SELECT IFNULL(employee_salary, 0) AS salary F…

离散数学——图论(笔记及思维导图)

离散数学——图论(笔记及思维导图) 目录 大纲 内容 参考 大纲 内容 参考 笔记来自【电子科大】离散数学 王丽杰

AI助力农作物自动采摘,基于YOLOv3全系列【yolov3tiny/yolov3/yolov3spp】参数模型开发构建作物生产场景下番茄采摘检测计数分析系统

去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物,专家设计出来了很多用于采摘不同农作物的大型机械,看着非常震撼,但是我们国内农业的发展还是相对比较滞后的&#xff0…

Dockerfile文件参数配置和使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

C# Socket通信从入门到精通(21)——Tcp客户端判断与服务器断开连接的三种方法以及C#代码实现

前言 我们开发的tcp客户端程序在连接服务器以后,经常会遇到服务器已经关闭但是作为客户端的我们不知道,这时候应该应该有一个机制我们可以实时监测客户端和服务器已经断开连接,如果已经断开了连接,我们应该及时报警提示用户客户端和服务器已经断开连接,本文介绍三种可以监…

幸福小院小区中央空调节能改造项目

空调计费是指“中央空调计费”,这种技术实际上是在对水、电、煤气的基础上发展起来的对冷热能量进行计量的一种计费系统技术。 节能改造项目:幸福小院小区. 项目情况需求: 该项目是小区住宅用户建筑,根据功能分区管理…

Vue中路由的使用

目录 1 作用 2 使用方法 2.1 安装路由 2.2 创建路由并导出 2.3 在应用实例中使用vue-router 2.4 声明router-view,展示组件内容 2.5 页面跳转 3 补充内容-子路由 1 作用 能够按不同的访问路径,展示不同组件的内容。 2 使用方法 2.1 安装路由 …

问题:塑瓷后的牙冠要比完成的牙冠大() #学习方法#其他

问题:塑瓷后的牙冠要比完成的牙冠大() A.10% B.10%-15% C.15%-20% D.20%-30% E.50% 参考答案如图所示

springboot157基于springboot的线上辅导班系统的开发与设计

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

智能优化算法 | Matlab实现合作优化算法(CSA)(内含完整源码)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 智能优化算法 | Matlab实现合作优化算法(CSA)(内含完整源码) 源码设计 clear clc close SearchAgents_no=30; % Number of search agents Max_iteration=1000;

PiflowX新增Apache Beam引擎支持

参考资料: Apache Beam 架构原理及应用实践-腾讯云开发者社区-腾讯云 (tencent.com) 在之前的文章中有介绍过,PiflowX是支持spark和flink计算引擎,其架构图如下所示: 在piflow高度抽象的流水线组件的支持下,我们可以…

【Leetcode】1696. 跳跃游戏 VI

文章目录 题目思路代码结果 题目 题目链接 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 一开始你在下标 0 处。每一步,你最多可以往前跳 k 步,但你不能跳出数组的边界。也就是说,你可以从下标 i 跳到 [i 1, min(n -…