pymysql的安裝以及操作實(shí)戰(zhàn)指南
1、pymysql的安裝
1.1 conda環(huán)境解釋器在線安裝
以管理員身份運(yùn)行終端或者使用Anaconda Powershell Prompt并以管理員身份運(yùn)行
conda install -c conda-forge pymysql
注意:conda安裝pymysql后,只有使用conda解釋器才可以調(diào)用
1.2 Python環(huán)境在線安裝
1、找到python安裝位置,打開終端輸入 where python
2、輸入cd 進(jìn)入python位置目錄
3、進(jìn)入Scripts
4、輸入pip install pymysql即可
2、寫操作流程
1、建立數(shù)據(jù)庫(kù)連接 (db = pymysql.connect(...))
connect()參數(shù):host(主機(jī)地址,本地localhost)、port(端口號(hào),默認(rèn)3306)
user(用戶名)、password(密碼)、database(數(shù)據(jù)庫(kù))、charaset(編碼方式,默認(rèn)utf8)
2、創(chuàng)建游標(biāo)對(duì)象 (c = db.cursor())
3、游標(biāo)方法 c.execute("insert......")
4、提交到數(shù)據(jù)庫(kù) db.commit() 將寫操作提交到數(shù)據(jù)庫(kù)(增刪改)
5、關(guān)閉游標(biāo)對(duì)象 c.close()
6、斷開數(shù)據(jù)庫(kù)連接 db.close()
3、寫操作(插入)案例
3.1 案例1
Python中的sql這個(gè)字符串,格式與sql語(yǔ)句保持一致,即可以復(fù)制到終端運(yùn)行
import pymysql # 連接數(shù)據(jù)庫(kù) db = pymysql.connect(host='localhost', port=3306, user='root', password='1234', database='student', charset='utf8') # 獲取游標(biāo)(操作數(shù)據(jù)庫(kù),執(zhí)行sql語(yǔ)句,承載結(jié)果) cur = db.cursor() # 執(zhí)行SQL語(yǔ)句 sql = "insert into class (name,age,sex,score) values ('王俊龍',19,'w',67),('李伯俊',19,'m',81);" cur.execute(sql) # 提交寫操作,可將多次寫操作一起提交 db.commit() cur.close() db.close()
3.2 案例2
sql語(yǔ)句處理方式1:此種方式需要注意字符串占位符加引號(hào)’',目的是保持與sql語(yǔ)句格式完全匹配
sql語(yǔ)句:sql = “insert into class (name,age,sex,score) values (‘王俊龍’,19,‘w’,67),(‘李伯俊’,19,‘m’,81);” 故字符串占位符一定要加 引號(hào)sql = “INSERT INTO interest (name,hobby,price,level,comment) VALUES (‘%s’,‘%s’,%f,‘%s’,‘%s’);” % (
name, hobby, price, level, comment)
import pymysql # 連接數(shù)據(jù)庫(kù) db = pymysql.connect(host='localhost', port=3306, user='root', password='1234', database='student', charset='utf8') # 獲取游標(biāo)(操作數(shù)據(jù)庫(kù)、執(zhí)行sql語(yǔ)句、承載結(jié)果) cur = db.cursor() name = input("姓名:") hobby = input("愛好:") price = int(input("價(jià)格:")) # 不用強(qiáng)轉(zhuǎn)也可以,sql語(yǔ)句中字符串帶'', # 數(shù)字沒有,而在下方格式化中,數(shù)字直接取代占位符,與sql語(yǔ)句一致;而字符串需要在占位符上加'' level = input("水平:") comment = input("評(píng)語(yǔ):") # 注意:下列字符串格式化時(shí)一定要與sql語(yǔ)句格式一致,字段對(duì)應(yīng)的值如果是字符串加 '' # 例如:sql = "insert into class (name,age,sex,score) values ('王俊龍',19,'w',67),('李伯俊',19,'m',81);" sql = "INSERT INTO interest (name,hobby,price,level,comment) VALUES ('%s','%s',%f,'%s','%s');" % ( name, hobby, price, level, comment) try: cur.execute(sql) db.commit() except Exception as e: db.rollback() finally: cur.close() db.close()
3.3 案例3
使用pymysql進(jìn)行讀操作,sql語(yǔ)句處理方式2
執(zhí)行sql語(yǔ)句時(shí),用參數(shù)二列表中的值順次匹配%ssql = “INSERT INTO interest (name,hobby,price,level,comment) VALUES (%s,%s,%s,%s,%s);”
cur.execute(sql, [name, hobby, price, level, comment])
import pymysql db = pymysql.connect(host='localhost', port=3306, user='root', password='1234', database='student', charset='utf8') cur = db.cursor() name = input("姓名:") hobby = input("愛好:") price = input("價(jià)格:") # 不用強(qiáng)轉(zhuǎn)也可以,sql語(yǔ)句中字符串帶'', # 數(shù)字沒有,而在下方格式化中,數(shù)字直接取代占位符,與sql語(yǔ)句一致;而字符串需要在占位符上加'' level = input("水平:") comment = input("評(píng)語(yǔ):") sql = "INSERT INTO interest (name,hobby,price,level,comment) VALUES (%s,%s,%s,%s,%s);" try: # 執(zhí)行sql語(yǔ)句時(shí),會(huì)自動(dòng)查找VALUES后面的值,用參數(shù)2列表中的值順次匹配,會(huì)自動(dòng)適應(yīng)sql語(yǔ)句格式 # (不用管列表中值的數(shù)據(jù)類型,sql字符串中直接%s), # 此時(shí)sql這個(gè)字符串中的%s不用加'' cur.execute(sql, [name, hobby, price, level, comment]) db.commit() except Exception as e: db.rollback() finally: cur.close() db.close()
**注意:**寫操作除上述的插入操作,還有刪除、修改操作,過程與案例1、2相似,更換sql語(yǔ)句就可以,案例3情況,只能傳遞某些字段的值或參量,字段名與表名不可以傳遞
4、讀操作流程
import pymysql # 連接數(shù)據(jù)庫(kù) db = pymysql.connect(host='localhost', port=3306, user='root', password='1234', database='student', charset='utf8') # 創(chuàng)建游標(biāo)對(duì)象 cur = db.cursor() sql = "select * from interest" # 執(zhí)行sql語(yǔ)句 cur.execute(sql) # 打印讀取的內(nèi)容 print(cur.fetchone()) # 返回值是一個(gè)元組 print(cur.fetchmany(3)) # 游標(biāo)輸出內(nèi)容,等待下次輸出時(shí)會(huì)接著上次游標(biāo)所在位置讀取(該語(yǔ)句輸出三條記錄) print(cur.fetchall()) # 單獨(dú)使用,輸出所有的記錄;但此時(shí)會(huì)在上述游標(biāo)操作后的位置輸出所有記錄(返回值為元組,里面每一條記錄也是元組) cur.close() db.close() """ # (1, 'Tom', 'sing,dance', Decimal('16800.00'), 'B', '表現(xiàn)不錯(cuò),進(jìn)步好快') # ((2, 'kevin', 'draw', Decimal('18800.00'), 'A', '基礎(chǔ)扎實(shí),畫風(fēng)突出'), (3, 'lily', 'sing,draw', Decimal('13499.00'), 'C', '進(jìn)步空間巨大'), (5, 'Mary', 'sing', Decimal('13900.00'), 'B', '未來可期')) # ((6, 'Jim', 'sing,dance', Decimal('16900.00'), 'C', '再接再厲'),) """
總結(jié)
到此這篇關(guān)于pymysql安裝及操作的文章就介紹到這了,更多相關(guān)pymysql安裝及操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+xlwings制作天氣預(yù)報(bào)表
python操作Excel的模塊,網(wǎng)上提到的模塊大致有:xlwings、xlrd、xlwt、openpyxl、pyxll等。本文將利用xlwings模塊制作一個(gè)天氣預(yù)報(bào)表,需要的可以參考一下2022-01-01Python內(nèi)置函數(shù)locals()的具體示例
本文主要介紹了Python中的內(nèi)置函數(shù)locals()的具體用法和應(yīng)用場(chǎng)景,locals()函數(shù)用于獲取當(dāng)前局部符號(hào)表的字典,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09Python自動(dòng)化測(cè)試pytest中fixtureAPI簡(jiǎn)單說明
這篇文章主要為大家介紹了Python自動(dòng)化測(cè)試pytest中fixtureAPI的簡(jiǎn)單說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10Ubuntu中安裝指定Python版本方法詳解(理論上各版本通用)
現(xiàn)在基于linux的發(fā)行版本有很多,有centos,ubuntu等,一般基于linux的衍生系統(tǒng)至少都安裝了Python2版本,但是現(xiàn)在Python已經(jīng)是3.x版本大行其道了,這篇文章主要給大家介紹了關(guān)于Ubuntu中安裝指定Python版本方法的相關(guān)資料,理論上各版本通用,需要的朋友可以參考下2023-06-06Python+tkinter制作經(jīng)典登錄界面和點(diǎn)擊事件
Tkinter是?Python?標(biāo)準(zhǔn)?GUI?庫(kù),簡(jiǎn)稱?“Tk”;從本質(zhì)上來說,它是對(duì)?TCL/TK?工具包的一種?Python?接口封裝。本文將利用tkinter制作一個(gè)經(jīng)典的登錄界面和點(diǎn)擊事件,需要的可以參考一下2022-09-09Python 利用pandas和mysql-connector獲取Excel數(shù)據(jù)寫入到MySQL數(shù)據(jù)庫(kù)
在實(shí)際應(yīng)用中,我們可能需要將Excel表格中的數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫(kù)中,以便于進(jìn)行進(jìn)一步的數(shù)據(jù)分析和處理,本文將介紹如何使用Python將Excel表格中的數(shù)據(jù)插入到MySQL數(shù)據(jù)庫(kù)中,需要的朋友可以參考下2023-10-10