用Python简单操作MySQL!轻松实现数据读写

news/2024/11/18 9:48:48/文章来源:https://www.cnblogs.com/zhuuque23/p/18349706

PyMySQL是Python编程语言中的一个第三方模块,它可以让Python程序连接到MySQL数据库并进行数据操作。它的使用非常简单,只需要安装PyMySQL模块,然后按照一定的步骤连接到MySQL数据库即 可。本文将介绍PyMySQL的安装、连接MySQL数据库、创建表、插入数据、查询数据、更新数据和删除数据等基本操作。 

 

一、安装PyMySQL 

在使用PyMySQL之前,我们需要先安装PyMySQL模块。可以使用pip命令进行安装

 

如下所示:

pip install PyMySQL

 

安装完成后,我们就可以在Python程序中使用PyMySQL模块了。 

 

 

二、连接MySQL数据库 

在使用PyMySQL进行数据库操作之前,我们需要先连接到MySQL数据库。连接MySQL数据库需要指定 数据库的主机名、用户名、密码和数据库名等信息。可以使用PyMySQL中的connect()函数来连接 MySQL数据库

 

如下所示:

import pymysql# 打开数据库连接db = pymysql.connect("localhost", "root", "123456", "test")# 关闭数据库连接db.close()

 

其中,第一个参数是数据库的主机名,如果数据库在本地,则可以使用localhost或127.0.0.1;第二个参数是数据库的用户名,一般为root;第三个参数是数据库的密码;第四个参数是要连接的数据库名。 

 

连接成功后,我们可以使用cursor()方法获取操作游标,如下所示:

# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()

 

 

三、创建表 

 

在创建表之前,我们需要先选择要操作的数据库。可以使用select_db()方法选择要操作的数据库,如下 所示:

# 选择要操作的数据库db.select_db("test")选择数据库后,我们可以使用execute()方法执行SQL语句来创建表。创建表的SQL语句如下所示:CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,`age` int(11) NOT NULL,`gender` varchar(10) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

其中, user 是表名, id 、name 、age 和 gender 是表的列名, AUTO_INCREMENT 表示自动递增, NOT NULL 表示不能为空, PRIMARY KEY 表示主键。 

 

执行创建表的SQL语句的代码如下所示:

# 创建表sql = """CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,`age` int(11) NOT NULL,`gender` varchar(10) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"""cursor.execute(sql)

 

执行完毕后,我们可以使用show_tables()方法查看数据库中的表,如下所示:

# 查看数据库中的表cursor.execute("show tables")tables = cursor.fetchall()for table in tables:print(table)

 

四、插入数据 

 

在插入数据之前,我们需要先准备好要插入的数据。插入数据可以使用execute()方法执行SQL语句,如下所示:

# 插入数据sql = "INSERT INTO `user`(`name`, `age`, `gender`) VALUES (%s, %s, %s)"values = ("张三", 18, "男")cursor.execute(sql, values)

 

其中, %s 表示占位符,后面的values是要插入的数据。执行完毕后,我们可以使用commit()方法提交事务,如下所示:

# 提交事务db.commit()

 

五、查询数据 

 

在查询数据之前,我们需要先准备好要查询的条件。查询数据可以使用execute()方法执行SQL语句,如 下所示:

# 查询数据sql = "SELECT * FROM `user` WHERE `name`=%s"values = ("张三",)cursor.execute(sql, values)result = cursor.fetchall()forrow in result: print(row)

 

其中, SELECT * FROM user WHERE name =%s 表示查询 user 表中名字为 张三 的记录, %s 是占位符, 后面的values是查询条件。执行完毕后,我们可以使用fetchall()方法获取查询结果。 

 

六、更新数据 

 

在更新数据之前,我们需要先准备好要更新的数据和更新条件。更新数据可以使用execute()方法执行 SQL语句,如下所示:

# 更新数据sql = "UPDATE `user` SET `age`=%s WHERE `name`=%s"values = (20, "张三")cursor.execute(sql, values)

 

其中, UPDATE user SET age =%s WHERE name =%s 表示将 user 表中名字为 张三 的记录的年龄更新为 20, %s 是占位符,后面的values是更新数据和更新条件。执行完毕后,我们可以使用commit()方法提交事务。 

 

七、删除数据 

在删除数据之前,我们需要先准备好要删除的数据和删除条件。删除数据可以使用execute()方法执行 SQL语句,如下所示:

# 删除数据sql = "DELETE FROM `user` WHERE `name`=%s"values = ("张三",)cursor.execute(sql, values)

 

其中, DELETE FROM user WHERE name =%s 表示删除 user 表中名字为 张三 的记录, %s 是占位符,后 面的values是删除条件。执行完毕后,我们可以使用commit()方法提交事务。 

 

八、总结 

本文介绍了PyMySQL的安装、连接MySQL数据库、创建表、插入数据、查询数据、更新数据和删除数据 等基本操作。通过学习本文,读者可以掌握使用PyMySQL进行MySQL数据库操作的基本方法。

 

 

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

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

相关文章

1.13 - 动手学聚类算法

1. 基于距离的k-means聚类,需要人工提供聚簇数量K 1.1 通过肘方法确定最佳聚簇数量import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler from sklearn.datasets import make_blobs, lo…

Linux C++ 开发2 - 编写、编译、执行第一个程序

上一篇《Linux C++ 开发1 - 搭建C++开发环境》我们搭建好了C++的开发环境,本篇我们将编写、编译、执行第一个程序。 1. 第一个C++程序 1.1. demo01.cpp 这里写一个最简单的HelloWord程序 #include <iostream>int main() {std::cout << "Hello, world!" …

洛谷P1194 买礼物之警钟敲爆

洛谷P1194题解传送锚点摸鱼环节 买礼物 题目描述 又到了一年一度的明明生日了,明明想要买 \(B\) 样东西,巧的是,这 \(B\) 样东西价格都是 \(A\) 元。 但是,商店老板说最近有促销活动,也就是: 如果你买了第 \(I\) 样东西,再买第 \(J\) 样,那么就可以只花 \(K_{I,J}\) 元…

CSP16

这题,唯一坑点,子序列是不连续的 注意,子序列可以不连续,子串必须连续。 有一个很显然的暴力点击查看代码 int dp[N][N],n,p[N],q[N]; int main() {speed();freopen("in.in","r",stdin);freopen("out.out","w",stdout);cin>>n…

潜在新就业岗位超300万个 原生鸿蒙开发创造百万级人才缺口

在数字化转型的浪潮中,开发者作为数字经济的建设者和创新者,成为了推动社会进步的重要⼒量。InfoQ 研究中⼼最新发布的《中国开发者画像洞察研究报告2024》显示,截至2023年年底,中国泛开发者⼈数高达2067.21万,增速为2.5%。在这2000多万人中,鸿蒙⽣态吸引了超过254万开发…

python numpy

import numpy as np a=np.array([1,2,3,4]) b=np.array([5,6,7,8]) #相应项相乘再相加 print(np.inner(a,b)) #a的每一项乘以b的每一项组成新的矩阵 print(np.outer(a,b))

开发者洞察报告:百万级鸿蒙岗位缺口,开发者薪资涨幅43.1%

最近,极客邦科技双数研究院InfoQ研究中心《中国开发者画像洞察研究报告2024》正式发布,分析了开发者群体在数字经济浪潮中的新趋势与显著变化。根据《国资委79号文件》指示,2027年底,全部国央企必须完成信息化系统的信创改造。而HarmonyOS系统作为国产自研信创软件的代表,…

CH6 CH7

CH-6 时间与窗口 6.1 时间语义事件时间(Event Time):数据产生的时间,默认使用处理时间(Processing Time):数据到达窗口的时间摄入时间:被Flink Source读入的时间6.2 水位线 6.2.1 逻辑时钟 在使用事件时间时,Flink使用逻辑时钟对数据进行窗口计算。逻辑时钟依靠数据的时间…

CH2~CH5

一个Flink程序,就是对DataStream进行各种转换。基本上由以下几部分构成接下来分别从执行环境、数据源、转换操作、输出四大部分,介绍DataStream API。 导入Scala DataStream Api import org.apache.flink.streaming.api.scala._CH-5 DataStream API基础 一、执行环境 1.1 创建…

中国式报表搞不定?告诉你如何轻松解决

中国式报表,顾名思义,是一种在中国企业中广泛使用的报表格式。这种报表通常格式复杂、数据量大、数据层次多,涵盖了从基本数据到高层分析的各个层面。每一个字段都可能代表着不同的含义,每一列数据都有着深厚的背景,这让很多报表工具望而却步。然而,要想在中国企业中高效…

git的快速入门(含常用指令)

目录概念什么是gitgit与GitHub有什么区别提交、仓库、分支git的使用从GitHub上下载别人的代码直接将代码下载到本地克隆仓库获取代码将自己的代码上传到GitHub 本文拟将用通俗的语言描述git的使用方法,如有出入,请批评指正 概念 什么是git Git可以想象成一个超级高效的"…

最全MySQL面试20题和答案(二)

接第一期的MySQL面试二十题,这是之后的20题!索引百万级别或以上的数据如何删除? 关于索引:由于索引需要额外的维护成本,因为索引文件是单独存在的文件,所以当我们对数据的增加、修改、删除都会产生额外的对索引文件的操,这些操作需要消耗额外的IO,会降低增/改/删的执行…