【全栈开发】----用pymysql库连接MySQL,批量存入

embedded/2024/12/28 20:48:39/

本文基于前面的MySQL基础语句使用,还不会的宝子可以先回去看看:

全栈开发----Mysql基本配置与使用-CSDN博客

        仅仅用控制台命令对数据库进行操作,虽然大部分操作都很简单,但对于大量数据的存入,存储数据将会变得很繁琐,有没有什么简单点的方式呢?有的有的,python的pymysql就能做到,通过python程序,实现对数据库的批量操作,在日常使用中也很常见。

目录

mysql%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%BB%8D-toc" style="margin-left:0px;">一、pymysql基本介绍

mysql%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C-toc" style="margin-left:0px;">二、pymysql基本操作

mysql%E5%BA%93-toc" style="margin-left:40px;">1、下载pymysql

2、创建SQL环境

mysql%E5%AF%B9SQL%E8%BF%9B%E8%A1%8C%E5%A2%9E%E5%88%A0%E6%94%B9%E6%9F%A5-toc" style="margin-left:40px;">3、使用pymysql对SQL进行增删改查

增加数据

查找数据

删除数据

修改数据

三、项目实例

mysql%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%BB%8D">一、pymysql基本介绍

        `PyMySQL` 是一个纯 Python 实现的 MySQL 客户端库,允许开发者通过 Python 程序与 MySQL 数据库进行交互。它遵循 PEP 249(Python 数据库 API 规范 v2.0),提供了与 MySQL 数据库连接、查询和管理的功能。`PyMySQL` 的一大优势在于其不依赖外部 C 库或 MySQL 客户端库,这使得安装和部署更加简便,同时也增强了跨平台兼容性。该库支持多种字符集和编码,并且能够处理复杂的 SQL 操作,如事务、游标和参数化查询等。此外,`PyMySQL` 具有良好的线程安全性,在多线程环境中也能稳定运行。它广泛应用于 Web 开发、数据处理和分析等领域,特别适合需要频繁与 MySQL 数据库交互的应用场景。由于其活跃的社区支持和定期更新,`PyMySQL` 成为了 Python 开发者操作 MySQL 数据库时的一个可靠选择。使用 `PyMySQL`,开发者可以通过简单的代码实现数据库连接、执行 SQL 语句、获取查询结果等一系列操作,极大地提高了开发效率。同时,它也支持连接池等功能,进一步优化了数据库访问性能。总之,`PyMySQL` 是一个功能强大、易于使用且性能优良的 MySQL 数据库接口库,为 Python 开发者提供了便捷的数据访问途径。

mysql%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C">二、pymysql基本操作

mysql%E5%BA%93">1、下载pymysql

在win+R终端输入下面指令,完成下载

pip install pymysql

2、创建SQL环境

pymysql的运行首先得需要mysql环境,所以得先创建库表

进入数据库这里省略着写,具体教程见上文

d:
cd D:\load_software\Mysql8.0\MySQL Server 8.0\Install\bin
mysql -uroot -p
#输入密码即可进入

创建一个表:

#进入practice数据库
use practice;
#创建tb1表
create table tb1(id int not null auto_increment primary key,name varchar(64) not null,age tinyint,password varchar(64) not null
)DEFAULT CHARSET=utf8;
#查看表属性
desc tb1;

mysql%E5%AF%B9SQL%E8%BF%9B%E8%A1%8C%E5%A2%9E%E5%88%A0%E6%94%B9%E6%9F%A5">3、使用pymysql对SQL进行增删改查

增加数据

导入pymysql

import pymysql

连接MySQL

# 1、连接MySQL
# 创建连接
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="612612",charset='utf8',db='practice')
# 创建游标(相当于收发指令)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

参数介绍

参数名介绍
hostip地址,本机默认127.0.0.1
port端口,默认3306
user用户,默认root
passwd数据库登录密码
charset编码格式
db连接数据库名称

发送指令

(注意,模板字符串只能使用pymysql自带的模板,不能使用.format、f之类的)

#用游标execute生成sql语句
sql = "insert into tb1(name,age,password) values(%s,%s,%s)"
cursor.execute(sql,[name,age,pwd])#提交命令
conn.commit()

关闭、断开连接

# 3.关闭
# 断开连接
cursor.close()
conn.close()

可以使用while循环+input函数,与用户交互,完整代码如下:

import pymysqlwhile True:name = input("用户名:")if name.upper() == 'Q':breakage = input("年龄:")pwd = input("密码:")# 1.连接MySQL# 创建连接conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="612612",charset='utf8',db='practice')  #db是数据库名称# 创建游标(相当于收发指令)cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令#用游标execute生成sql语句sql = "insert into tb1(name,age,password) values(%s,%s,%s)"cursor.execute(sql,[name,age,pwd])# 提交命令conn.commit()# 3.关闭# 断开连接cursor.close()conn.close()

运行,输入数据

在控制台查看数据是否存入

再对表中添加数据以便删除展示

查找数据

相比增加数据代码,只需修改指令,并读取数据即可,也不需要提交命令。

发送指令

# 2.发送指令
sql_2 = "select * from admin where id>3 "
cursor.execute(sql_2)

获取数据

import pprintdata_list = cursor.fetchall()  #fetchall()获取到所有数据
#data_list = cursor.fetchone() 获取满足条件的第一条数据
# pprint.pprint(data_list)  #获取一个列表,列表中是字典
for row in data_list:pprint.pprint(row)

pprint库可以使得获取的数据结构更加易懂

完整代码:

import pymysql
import pprint# 1.连接MySQL
# 创建连接
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="612612",charset='utf8',db='practice')  #db是数据库名称
# 创建游标(相当于收发指令)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令
sql_2 = "select * from tb1 where id>3 "
cursor.execute(sql_2)
data_list = cursor.fetchall()  #fetchall()获取到所有数据
#data_list = cursor.fetchone() 获取满足条件的第一条数据
# pprint.pprint(data_list)  #获取一个列表,列表中是字典
for row in data_list:pprint.pprint(row)# 3.关闭
# 断开连接
cursor.close()
conn.close()

显示结果:

可以通过字典的基础操作获取用户需要的值

删除数据

删除数据仅仅需要修改指令即可

sql_2 = "delete from tb1 where name='小贤' and name='老茧' "

完整代码:

import pymysql# 1.连接MySQL
# 创建连接
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="612612",charset='utf8',db='practice')  #db是数据库名称
# 创建游标(相当于收发指令)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令
sql_2 = "delete from tb1 where name='小贤' and name='老茧' "
cursor.execute(sql_2)
# 提交命令
conn.commit()# 3.关闭
# 断开连接
cursor.close()
conn.close()

删除后结果:

修改数据

修改数据也是只需按需求修改指令即可

cursor.execute("update tb1 set password=%s where name=%s",['8888888','叶豪', ])

完整代码:

import pymysql# 1.连接MySQL
# 创建连接
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="612612",charset='utf8',db='practice')  #db是数据库名称
# 创建游标(相当于收发指令)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 2.发送指令
cursor.execute("update tb1 set password=%s where name=%s",['8888888','叶豪', ])
# 提交命令
conn.commit()# 3.关闭
# 断开连接
cursor.close()
conn.close()

结果:

三、项目实例

需求:

现在有一个数据,包括分拣中心、日期、小时、货量,现在需要将这些数据存入Mysql中,并能通过分拣中心、日期、小时来检索出货量,要求交互性强。

数据如下:

通过百度网盘分享的文件:new_结果表2.csv
链接:https://pan.baidu.com/s/1JWp21KD7Zwzn1BrF2Tg44w 
提取码:olp7

由于最近要准备期末考试了,所以就不给大家更详细教程洛,大家可以自己设计,做一做。

感谢您的三连!!!


http://www.ppmy.cn/embedded/149102.html

相关文章

企业架构学习笔记-数字化转型

1. 企业数字化发展阶段 案例1.业务部门“点菜”,IT部门叫苦 随着企业信息化进程的不断推进,IT部门的角色和面临的挑战也在发生显著变化。在信息化建设的初级阶段,确实存在IT部门需要积极引导和说服业务部门重视信息技术价值的情况。当时&am…

【读书笔记】《论语别裁》秃头的十字架

1.内容摘要 《论语别裁》第01章讨论了中西文化在家庭和亲情方面的差异,特别是“孝”和“弟”的概念。作者认为西方文化自称为十字架文化,重视下一代的爱,但忽视了对长辈的关爱和对血缘关系的重视。而中国文化强调的“孝”不仅仅是对父母的爱…

uni-app:监听页面返回,禁用返回操作

文章目录 1. 重写 uni.navigateBack 方法2. 改进方案:确保只在当前页面拦截返回操作 在 UniApp 开发中,有时我们需要在满足特定条件时,禁止用户执行返回上一页面的操作。常见的需求是,当用户在某个页面进行某些操作时(…

C语言勘破之路-最终篇 —— 预处理(上)

人无完人,持之以恒,方能见真我!!! 共同进步!! 文章目录 一、预定义符号二、#define定义常量三.、#define定义宏四、带有副作用的宏参数五、宏替换的规则六、宏和函数的对比1.宏的优势2.函数的优…

AI视觉算法之朴素贝叶斯算法的合理利用

前言 在人工智能领域,视觉算法是一类重要的技术,用于处理和分析图像数据。朴素贝叶斯算法是一种基于概率的分类方法,它假设特征之间相互独立,因此非常适合处理高维数据集。本文将介绍朴素贝叶斯算法在AI视觉中的应用,…

【LeetCode 面试经典150题】详细题解之矩阵篇

【LeetCode 面试经典150题】详细题解之矩阵篇 1 矩阵的基础1.1 表示矩阵1.2 创建矩阵相关题目 2 36.有效的数独 (需要复习)分析代码 3 54.螺旋矩阵(需要复习)分析代码 4 48.旋转图像思路代码 5 73.矩阵置零 (一遍过&am…

计算机视觉目标检测-1

文章目录 摘要Abstract1.目标检测任务描述1.1 目标检测分类算法1.2 目标定位的简单实现思路1.2.1 回归位置 2.R-CNN2.1 目标检测-Overfeat模型2.1.1 滑动窗口 2.2 目标检测-RCNN模型2.2.1 非极大抑制(NMS) 2.3 目标检测评价指标 3.SPPNet3.1 spatial pyr…

35. TCP网络编程

一、TCP协议简介 1.1、什么是TCP协议 TCP 协议则是建立在 IP 协议之上的。TCP 协议负责在两台计算机之间建立可靠连接,保证数据包按顺序达到。TCP 协议会通过 3 次握手建立可靠连接。然后需要对每个 IP 包进行编号,确保对方按顺序收到,如果包…