Python操控mysql批量插入数据的实现方法


Posted in Python onOctober 27, 2020

在Python中,通过pymysql模块,编写简短的脚本,即方便快捷地控制MySQL数据库

一、连接数据库

        使用的函数:pymysql.connect

        语法:db=pymysql.connect(host='localhost',user='root',port=3306,password='Your password',db='database_name')

Python操控mysql批量插入数据的实现方法

        参数说明:host:MySQL服务器地址
                          user:用户名
                          password:MySQL登录密码
                          port:MySQL服务器端口号
                          db:需要连接的数据库名
        通常服务器地址、用户名、端口号都是上述的默认值

二、创建表

        连接完数据库后,我们需要使用db.cursor()获取数据库的操作游标

cur=db.cursor()

        接着使用execute()语句即可执行SQL语句.我们以创建学生成绩表来进行演示:

import pymysql
	db=pymysql.connect(host='localhost',user='root',password='123456',port=3	306,db='work1')
	cur=db.cursor() ##获取游标
	sql='create table grade(id varchar(10),name varchar(10),age int,score int,class varchar(10))'
	cur.execute(sql)

        打开Navicat查看表的情况如下:

Python操控mysql批量插入数据的实现方法

        学生成绩表创建成功!

三、批量插入数据

        创建完表后,接下来就是插入数据…而插入数据又可以分为两种方式:按行插入和一次性,我们将依次介绍。

按行插入

id=['101','102','103','104','105','106','107','108','109','110']
	name=['诸葛亮','刘备','周瑜','张飞','关羽','吕布','貂蝉','黄忠','马超','典韦']
	age=[28,30,27,26,28,28,24,26,23,18]
	score=[89,56,78,60,40,33,90,95,86,82]
	class_=['一班','一班','一班','二班','二班','二班','三班','三班','三班','三班']
	sql='insert into grade values(%s,%s,%s,%s,%s)'
	for i in range(0,len(id)):
	  cur.execute(sql,(id[i],name[i],age[i],score[i],class_[i]))
	db.commit()  #一定要提交数据!!不然在数据库中是没有数据显示的

一次性插入

data=((id[i],name[i],age[i],score[i],class_[i]) for i in range(0,len(id)))
	sql='insert into grade values(%s,%s,%s,%s,%s)'
	cur.executemany(sql,data)
	db.commit()

插入数据后,表grade内容如下:

Python操控mysql批量插入数据的实现方法

四、更多

        根据以上步骤,我们可知只要在execute语句中放入相应的SQL语句,即可实现对数据库的各种操作。而在pymysql中实现查询数据操作后,还需通过对游标对象使用.fetchall()方法来返回查询结果。

查询目标:筛选出各班的平均分并以降序进行排列

sql='select class,avg(score) from grade group by class order by avg(score) desc'
	cur.execute(sql)
	rst=cur.fetchall()
	print(rst)

Python操控mysql批量插入数据的实现方法

从输出结果可知,元素是以tuple的方式进行储存的。我们可以转为更多规范的格式查看:

import pandas as pd
	df=pd.DataFrame(list(rst),columns=['班级','平均分'])
	df

Python操控mysql批量插入数据的实现方法

完成各项操作后,不要忘记断开与数据库的连接:

db.close()

以上就是本次分享的全部内容~

附录:python MySQL 批量插入

在现实生活中,经常会使用到Python 将信息清洗完后插入数据库,但一条条插入势必速度效率跟不上,此时将需要使用批量插入的思维。

# coding:utf-8
import pymysql
 
# 打开数据库连接
db = pymysql.connect(host='localhost', port=3306,
           user='username', passwd='password', db='database_name', charset='utf8')
 
# 使用cursor()方法获取操作游标
cursor = db.cursor()
 
# SQL 插入语句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, AGE, SEX) VALUES (%s,%s,%s)"
# 一个tuple或者list
T = (('xiaoming', 31, 'boy'), ('hong', 22, 'girl'), ('wang', 90, 'man'))
 
try:
  # 执行sql语句
  cursor.executemany(sql, T)
  # 提交到数据库执行
  db.commit()
except :
  # 如果发生错误则回滚
  db.rollback()
# 关闭游标
cursor.close()
# 关闭数据库连接
db.close()

到此这篇关于Python操控mysql批量插入数据的实现方法的文章就介绍到这了,更多相关Python mysql批量插入数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用python实现省市三级菜单效果
Jan 20 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
python 删除非空文件夹的实例
Apr 26 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
利用python为PostgreSQL的表自动添加分区
Jan 18 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 Python
python 对一幅灰度图像进行直方图均衡化
Oct 27 #Python
Pycharm操作Git及GitHub的步骤详解
Oct 27 #Python
python 爬虫如何正确的使用cookie
Oct 27 #Python
python+requests实现接口测试的完整步骤
Oct 27 #Python
python设置中文界面实例方法
Oct 27 #Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 #Python
基于python实现坦克大战游戏
Oct 27 #Python
You might like
php include和require的区别深入解析
2013/06/17 PHP
php5.3 注意事项说明
2013/07/01 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
laydate日历控件使用方法详解
2017/11/20 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
使用Python绘制图表大全总结
2017/02/11 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
python文件拆分与重组实例
2018/12/10 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
Python类的动态绑定实现原理
2020/03/21 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
师德学习感言
2014/01/31 职场文书
安全生产标语
2014/06/06 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
上课迟到检讨书300字
2014/10/15 职场文书