日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

python与excel互通_【python】python vs Excel ( 与mysql数据库之间的交互)

發(fā)布時(shí)間:2023/12/15 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python与excel互通_【python】python vs Excel ( 与mysql数据库之间的交互) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【python】python vs Excel ( 與mysql數(shù)據(jù)庫(kù)之間的交互)

通過(guò)python與mysql數(shù)據(jù)庫(kù)做交互

到目前為止大部分案例的演示數(shù)據(jù)都是基于文件進(jìn)行讀取的。那么python如何跟數(shù)據(jù)庫(kù)之間做交互才是未來(lái)我們真正需要關(guān)心的。因?yàn)槲覀兊臄?shù)據(jù)最終還是要存儲(chǔ)到數(shù)據(jù)庫(kù)中去的。

python與數(shù)據(jù)庫(kù)之間的交互有很多。可以通過(guò)第三方包及API與不同的數(shù)據(jù)庫(kù)之間做交互。我個(gè)人的環(huán)境資源有限,因此這篇稿子是主要記錄python是如何同mysql數(shù)據(jù)庫(kù)之間進(jìn)行交互的。

一,安裝并配置mysql數(shù)據(jù)庫(kù)

https://www.cnblogs.com/liupengpengg/p/7092789.html

上述是我mysql數(shù)據(jù)庫(kù)的章節(jié),感興趣的可以按照此步驟進(jìn)行安裝。這個(gè)是基于windows平臺(tái)的安裝。如果您裝的是linux的話(huà),可以yum install mysql 或者通過(guò)官網(wǎng)下載更新版本的mysql到本地安裝。

友情提示:mysql數(shù)據(jù)庫(kù)安裝過(guò)后,windows的話(huà)要自行創(chuàng)建my.ini配置文件。里面的配置非常的重要如果配置項(xiàng)有問(wèn)題,會(huì)導(dǎo)致mysql的services不能被正常啟動(dòng)。建議配置項(xiàng)一個(gè)個(gè)配置然后restart mysql的服務(wù),能啟動(dòng)說(shuō)明此配置項(xiàng)沒(méi)問(wèn)題。另外mysql配置完畢后默認(rèn)很多權(quán)限及參數(shù)是OFF的。比如說(shuō)自動(dòng)load本地file到數(shù)據(jù)庫(kù)默認(rèn)就是不被打開(kāi)的。所以要在my.ini中配置允許load本地文件才可以通過(guò)load data infile命令將本地文件傳入mysql。具體我就不一一講解了。遇到問(wèn)題請(qǐng)問(wèn)度娘。

我把我本人遇到的坑的解決方案鏈接提供在下方了。如果您也遇到了請(qǐng)嘗試解決。

https://my.oschina.net/u/1018607/blog/857728

https://blog.csdn.net/xb1231232/article/details/106181694

二,安裝 Heidisql (免費(fèi)的mysql圖形化管理工具)

https://www.heidisql.com/download.php

三,安裝mysql依賴(lài)包

安裝完mysql數(shù)據(jù)庫(kù)后,對(duì)應(yīng)的也要在python中安裝對(duì)應(yīng)的依賴(lài)包,如下。

import pymysql

from sqlalchemy import create_engine

如果你直接在python IDE中導(dǎo)入這兩個(gè)包是肯定不存在的。如果您用的事pycharm的話(huà)可以嘗試intall這兩個(gè)包如果安裝成功最好。如果不行請(qǐng)通過(guò)windows命令行中的pip來(lái)進(jìn)行安裝。

建議不管您用的是什么IDE都直接通過(guò)pip install依賴(lài)包。

pip install pymysql

pip install sqlalchemy

四,安裝EditPlus 5 或者 EmEditor工具

標(biāo)題這兩個(gè)工具可以將我們Excel中導(dǎo)出的xlsx,csv, txt 等格式的數(shù)據(jù)做清洗用的。可以幫助我們更好的對(duì)數(shù)據(jù)進(jìn)行規(guī)整,把規(guī)整過(guò)后的數(shù)據(jù)存入數(shù)據(jù)庫(kù)。

EditPlus 5 安裝及使用

https://blog.csdn.net/syz201558503103/article/details/102327356

EmEditor 安裝及使用

https://www.cnblogs.com/eyesfree/p/9993304.html

https://www.cr173.com/html/25305_1.html

五,python中操作mysql數(shù)據(jù)庫(kù)案例演示

注釋:首先如何使用mysql這里不作解釋,如果有疑問(wèn)請(qǐng)參照我mysql篇的章節(jié)。以下的所有演示都是基于數(shù)據(jù)庫(kù)已經(jīng)有數(shù)據(jù),或者說(shuō)有空表,如何用python對(duì)其進(jìn)行增刪改查訪問(wèn)等操作的演示。下面這個(gè)就是我用HeidiSQL打開(kāi)的MySQL數(shù)據(jù)庫(kù)。接下來(lái)我們進(jìn)行的所有操作都圍繞all_students這章表來(lái)進(jìn)行。

1. 通過(guò)python打開(kāi)mysql中的all_students這章表

注意:代碼依然是基于jupyther來(lái)運(yùn)行的。如果您用的是.py的文件打印請(qǐng)都用print()來(lái)運(yùn)行。

#%%

import pandas as pd

import pymysql

from sqlalchemy import create_engine

#鏈接mysql數(shù)據(jù)庫(kù)(指定到database名)

con = create_engine("mysql+pymysql://root:root@localhost/liupeng")

#鏈接到具體的table

read_sql01 = pd.read_sql('all_students',con)

read_sql01.head(10) #讀取數(shù)據(jù)表內(nèi)容(10行)

2. 按照指定的表頭來(lái)讀取mysql數(shù)據(jù)

#按照指定的表頭來(lái)讀取數(shù)據(jù)

read_sql02 = pd.read_sql('all_students',con,columns=["cls_id","exam_nu","stu_name","gender","total"])

read_sql02.head(3)

3. 按照mysql語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行篩選

#%%

#通過(guò)reqd_sql(sql語(yǔ)句)的方式讀取部分?jǐn)?shù)據(jù)

read_sql03 = pd.read_sql('select cls_id,stu_name,total from liupeng.all_students where cls_id < 3 order by total',con=con)

read_sql03

4. 向mysql數(shù)據(jù)表添加一條數(shù)據(jù)(增)

注釋:對(duì)于mysql中的增刪改所用到的命令都是con.execute函數(shù)!!!

數(shù)據(jù)插入前:

#執(zhí)行sql的增刪改操作用.execute("sql語(yǔ)句")的函數(shù)

#追加一條sql語(yǔ)句到mysql數(shù)據(jù)庫(kù)

con.execute("insert into liupeng.all_students values ('1','劉景芮',100,100,98,298,'女',2018746)")

數(shù)據(jù)插入后:

5. 向mysql數(shù)據(jù)表修改一條數(shù)據(jù)(改)

注意:這里我查的是exam_nu=2018746,因?yàn)椴槊忠呀?jīng)變成關(guān)羽了。所以用唯一的id號(hào)來(lái)進(jìn)行查詢(xún)

con.execute("update liupeng.all_students set stu_name='關(guān)羽' where exam_nu=2018746 ")

6. 向mysql數(shù)據(jù)庫(kù)刪除一條數(shù)據(jù)(刪)

注意:條目被刪除后無(wú)論你指向stu_name還是exam_nu,返回結(jié)果都是0,因?yàn)閿?shù)據(jù)本身已經(jīng)被刪除。

7. 如何將本地?cái)?shù)據(jù)添加到MySQL數(shù)據(jù)表中

強(qiáng)調(diào):如果您的Mysql數(shù)據(jù)庫(kù)的my.ini沒(méi)有做以下的配置建議把配置寫(xiě)到my.ini中。如果您只是臨時(shí)使用一下,請(qǐng)按照我的方法運(yùn)行。不然MySQL不支持本地文件的加載。

例如我們把以下一個(gè)txt文本導(dǎo)入到mysql數(shù)據(jù)庫(kù)中

1魏薇735954186女2018010

1朱瑞麒596034153女2018012

1黃慧婕738184238女2018027

1張章605548163男2018094

1沈政宇517127149男2018108

1宋承澤687453195男2018113

1馬彥冰777252201女2018148

1馬愷618372216男2018166

1王錦程809683259男2018167

1閆瑾746464202女2018196

1王曉渝45122885女2018198

1王浩然798669234女2018246

1徐菁549060204女2018256

創(chuàng)建MySQL對(duì)應(yīng)的表格,我個(gè)人比較懶,因此我直接通過(guò)like命令復(fù)制了all_students的表結(jié)構(gòu)來(lái)創(chuàng)建的stu_test表。

創(chuàng)建過(guò)后的結(jié)構(gòu)是這樣的。。其中沒(méi)有任何的內(nèi)容只有結(jié)構(gòu)!!

導(dǎo)入數(shù)據(jù)到mysql中的stu_test表中。對(duì)于數(shù)據(jù)的導(dǎo)入可以直接通過(guò)圖形化界面來(lái)做。也可以通過(guò)命令行來(lái)做。

這里為了省事,我直接在底層的mysql數(shù)據(jù)庫(kù)通過(guò)load data infile的方法把數(shù)據(jù)追加到stu_test表格中了。

當(dāng)然如果您想通過(guò)python中的語(yǔ)句來(lái)將數(shù)據(jù)導(dǎo)入mysql數(shù)據(jù)庫(kù)中也是可以的。在此我奉上以下鏈接希望對(duì)大家有所幫助。

https://blog.csdn.net/xiaoxiao_plus/article/details/94456986

https://www.cnblogs.com/bjwu/p/10250759.html

總結(jié)

以上是生活随笔為你收集整理的python与excel互通_【python】python vs Excel ( 与mysql数据库之间的交互)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。