Python的pymysql模块与MySQL数据库的互动:基础与实例

Python的pymysql模块与MySQL数据库的互动:基础与实例

  • 一、连接数据库
  • 二、创建游标
  • 三、执行SQL命令
  • 四、关闭连接


在Python的世界里,操作MySQL数据库最常用的库就是pymysql
pymysql是一个灵活且易于使用的库,它允许我们以Python的方式操作MySQL数据库。本文将详细介绍如何使用pymysql模块与MySQL数据库进行互动,并通过具体案例来加深理解。
请添加图片描述
首先,确保已经正确安装了pymysql库。可以使用pip来安装:

pip install pymysql

安装完成后,接下来我们将详细介绍如何使用pymysql与MySQL数据库进行互动。


一、连接数据库

使用pymysql连接到MySQL数据库的第一步是创建一个连接对象。连接对象需要接收以下参数:

  • 主机 - host
  • 端口 - port
  • 用户名 - user
  • 密码 - password
  • 默认数据库名称 - database
  • 字符集 - charset

下面是一个创建连接对象的示例:

import pymysql# 创建连接对象
conn = pymysql.connect(host='111.234.567.89', port=3306, user='root', password='password', database='test_db', charset='utf8')

字符集charset一般不需要指定

二、创建游标

在连接到数据库后,我们需要创建一个游标对象。
游标对象用于执行SQL命令并处理结果。创建游标的常用方法是使用connection对象的cursor()方法。
下面是一个创建游标的示例:

import pymysql# 创建连接对象
conn = pymysql.connect(host='111.234.567.89', port=3306, user='root', password='password', database='test_db', charset='utf8')# 创建游标对象
cursor = conn.cursor()

三、执行SQL命令

现在我们已经连接到数据库并创建了游标对象,接下来就可以执行SQL命令了。pymysql提供了多种执行SQL命令的方法,包括execute()方法、executemany()方法和callproc()方法。
下面是一个使用execute()方法执行SQL命令的示例:

import pymysql# 创建连接对象
conn = pymysql.connect(host='111.234.567.89', port=3306, user='root', password='password', database='test_db', charset='utf8')# 创建游标对象
cursor = conn.cursor()# 执行插入操作
sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
cursor.execute(sql, ("John Doe", "john.doe@example.com"))# 提交更改
conn.commit()

1. callproc方法实际很少使用,因为可以使用sql中的call proc()代替
2. 在更新大量数据的情况下,executemany方法比execute方法具有无可替代的优势

四、关闭连接

完成所有操作后,记得关闭连接以释放资源。
可以使用connection对象的close()方法来关闭连接。下面是一个关闭连接的示例:

import pymysql# 创建连接对象
conn = pymysql.connect(host='111.234.567.89', port=3306, user='root', password='password', database='test_db', charset='utf8')# 创建游标对象
cursor = conn.cursor()# 执行SQL命令...
# ...省略其他代码...# 关闭连接
conn.close()

以上就是使用pymysql模块与MySQL数据库进行互动的基础知识和一个简单示例。在实际应用中,可能还需要处理更复杂的SQL命令和数据操作。

不过,通过理解这些基本概念,你将能够更好地运用pymysql库来操作MySQL数据库。
请添加图片描述

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

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

相关文章

Bean 生命周期

Bean 生命周期 一、Bean 实例化的基本流程 Spring容器在进行初始化时,会将xml配置的的信息封装成一个BeanDefifinition对象,所有的BeanDefifinition存储到一个名为beanDefifinitionMap的Map集合中去,Spring框架在对该Map进行遍历&#xff0…

Debian系统上通过NFS挂载远程服务器硬盘

步骤 1:配置远程服务器 在拥有硬盘内容的远程服务器上,进行以下配置: 安装NFS服务器软件: sudo apt-get update sudo apt-get install nfs-kernel-server编辑NFS服务器配置文件 /etc/exports,添加需要共享的目录及其权…

分部署存储Ceph

文章目录 Ceph一.deploy-ceph部署1.系统环境初始化1.1 修改主机名,DNS解析1.2 时间同步1.3 配置apt基础源与ceph源1.4关闭selinux与防火墙1.5 创建 ceph 集群部署用户cephadmin1.6分发密钥 2. ceph部署2.1 安装ceph 部署工具2.2 初始化 mon 节点2.3 安装ceph-mon服务…

Jmeter性能综合实战 —— 签到及批量签到

提取性能测试的三个方面:核心、高频、基础功能 签 到 请 求 步 骤 1、准备工作: 签到线程组n HTTP请求默认值n HTTP cookie 管理器n 首页访问请求n 登录请求n 查看结果树n 调试取样器l HTTP代理服务器 (1)创建线程组 &#xf…

〖程序员的自我修养 - 认知剖析篇⑩〗- 学习编程的高效率方法

人之所以会觉得迷茫,本质上是欠缺对自己的一个控制力、识别庞杂信息、去伪存真的独立思考与认知能力。 说明:该文属于 程序员的自我修养 专栏,购买任意白宝书体系化专栏可加入易编程社区,早鸟价订阅模式除外。福利:加入社区的小伙伴们,除了可以获取博主所有付费专栏的阅读…

python面试:使用cProfile剖析程序性能

我们需要安装tuna:pip install tuna 程序执行完毕后,我们会得到一个results.prof,在CMD中输入指令:“tuna results.prof”。 import time import cProfile import pstatsdef add(x, y):resulting_sum 0resulting_sum xresulti…

Fooocus:一个简单且功能强大的Stable Diffusion webUI

Stable Diffusion是一个强大的图像生成AI模型,但它通常需要大量调整和提示工程。Fooocus的目标是改变这种状况。 Fooocus的创始人Lvmin Zhang(也是 ControlNet论文的作者)将这个项目描述为对“Stable Diffusion”和“ Midjourney”设计的重新…

http服务(Apache 2.4.57)源码编译及使用

这里安装的是Apache 2.4.57版本 1.下载源码包及编译安装 下载地址 # 下载 wget https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz # 如果系统自带httpd这个软件要删除掉,两个软件不能同时运行 rpm -e httpd --nodeps # 安装依赖环境 yum -y install apr apr-dev…

《PyTorch 2.0深度学习从零开始学》已出版

#好书推荐##好书奇遇季#《PyTorch 2.0深度学习从零开始学》,京东当当天猫都有发售。定价69元,网店打折销售更便宜。本书配套示例项目源码、PPT课件。 本书以通俗易懂的方式介绍PyTorch深度学习基础理论,并以项目实战的形式详细介绍PyTorch框…

【算法随记】C(n,m)不越界但A(n,m)越界;C(n,1)+C(n,3)+C(n,5)...等二项式定理;“memset”: 找不到标识符

https://codeforces.com/contest/893/problem/E C(n,m)不越界但A(n,m)越界的解决方案 C(n,m) A(n,m) / (n-m)! 这题要模1e97,但是只有加减乘能模,除法模不了。所以这个A(n,m)要存原值,原值也太大了,爆 long long 要是能不要除…

电脑入门:路由器 基本设置操作说明

路由器 基本设置操作说明 首先我们我设置路由器,就需要先登录路由器, 那么怎样登路由器啊? 登录路由器的方法是 在ie的地址栏输入:http://192.168.1.1 输入完成以后直接回车 那么如果你输入正确 这个时候就应该听到有用户名的提示 呵呵 这是怎么回事啊? 不要召集 首…

使用Python脚本添加新的相关节点到arxml文件中的指定位置

使用Python脚本添加新的相关节点到arxml文件中的指定位置 1 背景 随着汽车软件开发的复杂度越来越高,链路越来越长,很多手动配置的工具链所需要的时间就会被拉长,显然这对于项目的开发进度有了一定影响,根据需求自动化生成arxml文件其实很有必要。同时越来越多的测试开始…

在vue3项目中编辑的时候,解决对话框里边的数据和列表中的数据联动了。深复制

//分析原因是从列表中拿到的数据直接复制去修改就涉及到堆里变的内容是一样的&#xff0c;直接复制其实只是把引用地址赋值给变量了&#xff0c;解决方法是 浅复制和深复制。<!-- 审批流程管理 --> <template><div style"float: left; width: 250px;backgr…

Vue2.0 的响应式原理 私

原理&#xff1a; 通过数据劫持 defineProperty 发布订阅者模式&#xff0c;当 vue 实例初始化后 observer 会针对实例中的 data 中的每一个属性进行劫持并通过 defineProperty() 设置值后在 get() 中向发布者添加该属性的订阅者&#xff0c; 使用的Object.defineProperty()…

软件机器人助力行政审批局优化网约车业务流程,推动审批业务数字化转型

随着社会的进步和发展&#xff0c;行政审批业务逐渐趋向于智能化和自动化。近日&#xff0c;某市行政审批局在市场准入窗口引入博为小帮软件机器人大幅度提升了网约车办理业务的效率&#xff0c;创新了原有的业务模式。 软件机器人以其自动化、智能化的特性&#xff0c;优化了网…

Excel:如何实现分组内的升序和降序?

一、POWER 1、构建辅助列D列&#xff0c;在D2单元格输入公式&#xff1a; -POWER(10,COUNTA($A$2:A2)3)C2 2、选中B1:D10&#xff0c;注意不能宣导A列的合并单元格&#xff0c;进行以下操作&#xff1a; 3、删除辅助列即可 二、COUNTA 第一步&#xff0c;D2建立辅助列&#xf…

Maven - 使用maven-release-plugin规范化版本发布

文章目录 Maven Release plugin – IntroductionMaven Release plugin – Plugin DocumentationMaven Release plugin – Usage实战案例 Maven Release plugin – Introduction Maven Release Plugin&#xff08;Maven 发布插件&#xff09;是一个用于帮助在Maven项目中执行版…

前端基础---HTML笔记汇总一

HTML定义 HTML超文本标记语言——HyperText Markup Language。 超文本是什么&#xff1f; 链接标记是什么&#xff1f; 标记也叫标签&#xff0c;带尖括号的文本 标签分类 单标签:只有开始标签&#xff0c;没有结束标签(<br>换行 <hr>水平线 <img> 图像标…

完美解决 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

拉取代码时报错&#xff1a; # Mac 报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key …

JavaScript关于函数的小挑战

题目 回到两个体操队&#xff0c;即海豚队和考拉队! 有一个新的体操项目&#xff0c;它的工作方式不同。 每队比赛3次&#xff0c;然后计算3次得分的平均值&#xff08;所以每队有一个平均分&#xff09;。 只有当一个团队的平均分至少是另一个团队的两倍时才会获胜。否则&…