色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法

瀏覽:5日期:2022-07-07 09:05:56

在Python中,通過(guò)pymysql模塊,編寫簡(jiǎn)短的腳本,即方便快捷地控制MySQL數(shù)據(jù)庫(kù)

一、連接數(shù)據(jù)庫(kù)

使用的函數(shù):pymysql.connect

語(yǔ)法:db=pymysql.connect(host=’localhost’,user=’root’,port=3306,password=’Your password’,db=’database_name’)

Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法

參數(shù)說(shuō)明:host:MySQL服務(wù)器地址 user:用戶名 password:MySQL登錄密碼 port:MySQL服務(wù)器端口號(hào) db:需要連接的數(shù)據(jù)庫(kù)名通常服務(wù)器地址、用戶名、端口號(hào)都是上述的默認(rèn)值

二、創(chuàng)建表

連接完數(shù)據(jù)庫(kù)后,我們需要使用db.cursor()獲取數(shù)據(jù)庫(kù)的操作游標(biāo)

cur=db.cursor()

接著使用execute()語(yǔ)句即可執(zhí)行SQL語(yǔ)句.我們以創(chuàng)建學(xué)生成績(jī)表來(lái)進(jìn)行演示:

import pymysqldb=pymysql.connect(host=’localhost’,user=’root’,password=’123456’,port=3306,db=’work1’)cur=db.cursor() ##獲取游標(biāo)sql=’create table grade(id varchar(10),name varchar(10),age int,score int,class varchar(10))’cur.execute(sql)

打開Navicat查看表的情況如下:

Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法

學(xué)生成績(jī)表創(chuàng)建成功!

三、批量插入數(shù)據(jù)

創(chuàng)建完表后,接下來(lái)就是插入數(shù)據(jù)…而插入數(shù)據(jù)又可以分為兩種方式:按行插入和一次性,我們將依次介紹。

按行插入

id=[’101’,’102’,’103’,’104’,’105’,’106’,’107’,’108’,’109’,’110’]name=[’諸葛亮’,’劉備’,’周瑜’,’張飛’,’關(guān)羽’,’呂布’,’貂蟬’,’黃忠’,’馬超’,’典韋’]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() #一定要提交數(shù)據(jù)!!不然在數(shù)據(jù)庫(kù)中是沒有數(shù)據(jù)顯示的

一次性插入

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()

插入數(shù)據(jù)后,表grade內(nèi)容如下:

Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法

四、更多

根據(jù)以上步驟,我們可知只要在execute語(yǔ)句中放入相應(yīng)的SQL語(yǔ)句,即可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作。而在pymysql中實(shí)現(xiàn)查詢數(shù)據(jù)操作后,還需通過(guò)對(duì)游標(biāo)對(duì)象使用.fetchall()方法來(lái)返回查詢結(jié)果。

查詢目標(biāo):篩選出各班的平均分并以降序進(jìn)行排列

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批量插入數(shù)據(jù)的實(shí)現(xiàn)方法

從輸出結(jié)果可知,元素是以tuple的方式進(jìn)行儲(chǔ)存的。我們可以轉(zhuǎn)為更多規(guī)范的格式查看:

import pandas as pddf=pd.DataFrame(list(rst),columns=[’班級(jí)’,’平均分’])df

Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法

完成各項(xiàng)操作后,不要忘記斷開與數(shù)據(jù)庫(kù)的連接:

db.close()

以上就是本次分享的全部?jī)?nèi)容~

附錄:python MySQL 批量插入

在現(xiàn)實(shí)生活中,經(jīng)常會(huì)使用到Python 將信息清洗完后插入數(shù)據(jù)庫(kù),但一條條插入勢(shì)必速度效率跟不上,此時(shí)將需要使用批量插入的思維。

# coding:utf-8import pymysql # 打開數(shù)據(jù)庫(kù)連接db = pymysql.connect(host=’localhost’, port=3306, user=’username’, passwd=’password’, db=’database_name’, charset=’utf8’) # 使用cursor()方法獲取操作游標(biāo)cursor = db.cursor() # SQL 插入語(yǔ)句sql = 'INSERT INTO EMPLOYEE(FIRST_NAME, AGE, SEX) VALUES (%s,%s,%s)'# 一個(gè)tuple或者listT = ((’xiaoming’, 31, ’boy’), (’hong’, 22, ’girl’), (’wang’, 90, ’man’)) try: # 執(zhí)行sql語(yǔ)句 cursor.executemany(sql, T) # 提交到數(shù)據(jù)庫(kù)執(zhí)行 db.commit()except : # 如果發(fā)生錯(cuò)誤則回滾 db.rollback()# 關(guān)閉游標(biāo)cursor.close()# 關(guān)閉數(shù)據(jù)庫(kù)連接db.close()

到此這篇關(guān)于Python操控mysql批量插入數(shù)據(jù)的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Python mysql批量插入數(shù)據(jù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日本一级特黄高清ab片 | 成在线人永久免费播放视频 | 国产一区二区影视 | 一级毛片免费观看不卡视频 | 成年人免费小视频 | 手机毛片在线观看 | 久久精品视频免费在线观看 | 欧美真人毛片动作视频 | 国产高清一区二区 | 99在线精品免费视频九九视 | 日韩午夜在线视频不卡片 | 亚洲精品天堂在线观看 | 久久精品国产精品亚洲毛片 | 日韩欧美综合在线二区三区 | 一级黄片一级毛片 | 亚洲国产成人在人网站天堂 | 国产精品推荐 | 欧美极品在线播放 | 国产成人亚洲精品久久 | 精品精品国产自在久久高清 | 成人国产一区二区三区精品 | 婷婷久久久五月综合色 | 亚洲影院在线 | 欧美一级毛片免费网站 | 老王午夜69精品影院 | 九九精品免视频国产成人 | 欧美特黄一级高清免费的香蕉 | 国产做国产爱免费视频 | 成人a免费视频播放 | 亚洲国产成人私人影院 | 综合在线视频精品专区 | 国产20岁美女一级毛片 | 白嫩美女一级毛片免费看 | 亚洲高清无在码在线无弹窗 | 亚洲成人午夜影院 | 欧美国产合集在线视频 | 久久99精品热在线观看15 | 日韩免费一级毛片 | 99在线视频免费观看 | 亚洲m男在线中文字幕 | 欧美激情亚洲 |