** 寫作原因:這篇文章將帶領讀者使用Python操作MySQL數(shù)據(jù)庫。在PHP和Python之間博主更傾向于Python,而后臺開發(fā)免不了要操作數(shù)據(jù)庫臭家,所以就有了這篇文章疲陕。 **
安裝Python
鑒于上一篇關于Python的文章已經(jīng)有關于Python安裝的介紹了,這里就不花筆墨多說了钉赁。
安裝MySQL
MySQL介紹
MySQL是一個關系型數(shù)據(jù)庫管理系統(tǒng)蹄殃,由瑞典MySQL AB 公司開發(fā),目前屬于Oracle旗下產品你踩。MySQL是一款優(yōu)秀的開源產品诅岩,正是由于其開源性使其逐漸成為現(xiàn)今商業(yè)數(shù)據(jù)庫的主流選擇之一。
具體安裝流程(Win版)
由于博主目前只在Win平臺測試带膜,所以這里只介紹Win版的安裝流程吩谦。
首先下載mysql-5.6.33-winx64(下載地址),mysql5.7以上版本在安裝的過程中會出現(xiàn)一些問題,所以本人選擇了5.6版本膝藕。安裝的過程一直下一步就行式廷;
然后配置系統(tǒng)環(huán)境變量。找到“系統(tǒng)-高級系統(tǒng)設置-環(huán)境變量”芭挽,在Path的最后加上數(shù)據(jù)庫內的bin文件夾目錄如“;D:\mysql-5.6.33-winx64\bin”(注意一定要加分號)滑废;
到根目錄下打開my-default.ini文件,將“# basedir = …… # datadir = ……”修改為“basedir = D:\mysql-5.6.33-winx64 datadir = D:\mysql-5.6.33-winx64\data”袜爪;
打開cmd(一定要管理員權限H涑谩)轉到“D:\mysql-5.6.33-winx64\bin”目錄,輸入“mysqld -install”饿敲。等到出現(xiàn)“Service successfully installed.”之后就繼續(xù)輸入“net start mysql”妻导。這樣mysql就啟動了。
使用pymysql包
下面就是正是使用Python來操作mysql的第一步了怀各。打開cmd倔韭,直接輸入pip install PyMySql,等它安裝完畢就OK了瓢对,就是這么簡單寿酌。
利用Mysql WorkBench可視化數(shù)據(jù)庫
對于數(shù)據(jù)庫,如果用命令行的話有時可能會比較麻煩硕蛹,這時可以考慮使用GUI界面代替CLI醇疼。官方提供了MySql WorkBench(點擊下載)。使用WorkBench我們可以輕易地查看本地數(shù)據(jù)庫的一些狀態(tài)法焰、數(shù)據(jù)庫的操作等等秧荆,具體使用不多說了,這里只說一下新建數(shù)據(jù)庫和數(shù)據(jù)表埃仪。點擊圖標欄第四個圖標(create a new schema in the connected server)乙濒,設置好相關參數(shù)就可以創(chuàng)建數(shù)據(jù)庫。在Schema工具欄中,選擇你要添加表的數(shù)據(jù)庫颁股,右鍵Tables選擇“Create Table”么库,寫好字段和數(shù)據(jù)類型,即可完成數(shù)據(jù)表的創(chuàng)建甘有。
實現(xiàn)基本的數(shù)據(jù)庫的增刪改查
下面開始寫代碼诉儒。
具體代碼如下:
import pymysql
def connDB():
#連接數(shù)據(jù)庫
conn=pymysql.connect(host='localhost',user='root',passwd='',db='first')
cur=conn.cursor()
return (conn,cur)
def exeUpdate(conn,cur,sql):
#更新語句,可執(zhí)行Update亏掀,Insert語句
sta=cur.execute(sql)
conn.commit()
return (sta)
def exeDelete(conn,cur,IDs):
#刪除語句忱反,可批量刪除
for eachID in IDs.split(' '):
sta=cur.execute('delete from students where Id=%d'%int(eachID))
conn.commit()
return (sta)
def exeQuery(cur,sql):
#查詢語句
cur.execute(sql)
result = cur.fetchone()
return (result)
def connClose(conn,cur):
#關閉所有連接
cur.close()
conn.close()
conn = connDB()[0]
cur = connDB()[1]
exeUpdate(conn,cur,"INSERT INTO first_note (idfirst_note, note_title , note_content ) VALUES (0,'Title','This is the content');")
print(exeQuery(cur,"SELECT note_title ,note_content FROM first_note;"))
connClose()
這里有幾個地方說明一下:
創(chuàng)建:我們通過conn=pymysql.connect(host='localhost',user='root',passwd='',db='first')
方法獲取一個connection對象。connection對象類似于數(shù)據(jù)操作過程中的管道幌氮,我們數(shù)據(jù)操作都是在connection之上進行的缭受。(有過網(wǎng)絡編程經(jīng)驗的朋友一下就理解了),然后再通過cur=conn.cursor()
獲取游標该互,游標對象則類似于管道中的載體米者,進行數(shù)據(jù)的傳送。有了cur我們才能直接操作數(shù)據(jù)庫宇智。
增刪查改:代碼中我們把增刪查改分成四個函數(shù)蔓搞,事實上這四個操作都是調用cur.execute()進行的,也就是直接使用SQL語言進行數(shù)據(jù)庫操作随橘。如果有必要我們應該對它們再次封裝便于使用喂分。具體代碼看上面。
關閉:最后我們使用cur.close() conn.close()
分別關閉游標和connection對象机蔗,這樣就結束了一次數(shù)據(jù)操作蒲祈。
總結
這篇文章搭建的是win平臺下的本地數(shù)據(jù)庫,關于Linux平臺的及遠程數(shù)據(jù)庫的相關操作類似萝嘁。此外環(huán)境配完了更重要的是學習掌握SQL語言和最大程度運用Python寫出優(yōu)秀的代碼梆掸。就這樣啦~