pymysql的安裝以及操作實戰(zhàn)指南
1、pymysql的安裝
1.1 conda環(huán)境解釋器在線安裝
以管理員身份運行終端或者使用Anaconda Powershell Prompt并以管理員身份運行
conda install -c conda-forge pymysql
注意:conda安裝pymysql后,只有使用conda解釋器才可以調用
1.2 Python環(huán)境在線安裝
1、找到python安裝位置,打開終端輸入 where python
2、輸入cd 進入python位置目錄

3、進入Scripts

4、輸入pip install pymysql即可
2、寫操作流程
1、建立數(shù)據庫連接 (db = pymysql.connect(...))
connect()參數(shù):host(主機地址,本地localhost)、port(端口號,默認3306)
user(用戶名)、password(密碼)、database(數(shù)據庫)、charaset(編碼方式,默認utf8)
2、創(chuàng)建游標對象 (c = db.cursor())
3、游標方法 c.execute("insert......")
4、提交到數(shù)據庫 db.commit() 將寫操作提交到數(shù)據庫(增刪改)
5、關閉游標對象 c.close()
6、斷開數(shù)據庫連接 db.close()
3、寫操作(插入)案例
3.1 案例1
Python中的sql這個字符串,格式與sql語句保持一致,即可以復制到終端運行
import pymysql
# 連接數(shù)據庫
db = pymysql.connect(host='localhost',
port=3306,
user='root',
password='1234',
database='student',
charset='utf8')
# 獲取游標(操作數(shù)據庫,執(zhí)行sql語句,承載結果)
cur = db.cursor()
# 執(zhí)行SQL語句
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語句處理方式1:此種方式需要注意字符串占位符加引號’',目的是保持與sql語句格式完全匹配
sql語句: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)
import pymysql
# 連接數(shù)據庫
db = pymysql.connect(host='localhost',
port=3306,
user='root',
password='1234',
database='student',
charset='utf8')
# 獲取游標(操作數(shù)據庫、執(zhí)行sql語句、承載結果)
cur = db.cursor()
name = input("姓名:")
hobby = input("愛好:")
price = int(input("價格:"))
# 不用強轉也可以,sql語句中字符串帶'',
# 數(shù)字沒有,而在下方格式化中,數(shù)字直接取代占位符,與sql語句一致;而字符串需要在占位符上加''
level = input("水平:")
comment = input("評語:")
# 注意:下列字符串格式化時一定要與sql語句格式一致,字段對應的值如果是字符串加 ''
# 例如: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進行讀操作,sql語句處理方式2
執(zhí)行sql語句時,用參數(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("價格:")
# 不用強轉也可以,sql語句中字符串帶'',
# 數(shù)字沒有,而在下方格式化中,數(shù)字直接取代占位符,與sql語句一致;而字符串需要在占位符上加''
level = input("水平:")
comment = input("評語:")
sql = "INSERT INTO interest (name,hobby,price,level,comment) VALUES (%s,%s,%s,%s,%s);"
try:
# 執(zhí)行sql語句時,會自動查找VALUES后面的值,用參數(shù)2列表中的值順次匹配,會自動適應sql語句格式
# (不用管列表中值的數(shù)據類型,sql字符串中直接%s),
# 此時sql這個字符串中的%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語句就可以,案例3情況,只能傳遞某些字段的值或參量,字段名與表名不可以傳遞
4、讀操作流程
import pymysql
# 連接數(shù)據庫
db = pymysql.connect(host='localhost',
port=3306,
user='root',
password='1234',
database='student',
charset='utf8')
# 創(chuàng)建游標對象
cur = db.cursor()
sql = "select * from interest"
# 執(zhí)行sql語句
cur.execute(sql)
# 打印讀取的內容
print(cur.fetchone()) # 返回值是一個元組
print(cur.fetchmany(3)) # 游標輸出內容,等待下次輸出時會接著上次游標所在位置讀取(該語句輸出三條記錄)
print(cur.fetchall()) # 單獨使用,輸出所有的記錄;但此時會在上述游標操作后的位置輸出所有記錄(返回值為元組,里面每一條記錄也是元組)
cur.close()
db.close()
"""
# (1, 'Tom', 'sing,dance', Decimal('16800.00'), 'B', '表現(xiàn)不錯,進步好快')
# ((2, 'kevin', 'draw', Decimal('18800.00'), 'A', '基礎扎實,畫風突出'), (3, 'lily', 'sing,draw', Decimal('13499.00'), 'C', '進步空間巨大'), (5, 'Mary', 'sing', Decimal('13900.00'), 'B', '未來可期'))
# ((6, 'Jim', 'sing,dance', Decimal('16900.00'), 'C', '再接再厲'),)
"""總結
到此這篇關于pymysql安裝及操作的文章就介紹到這了,更多相關pymysql安裝及操作內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python自動化測試pytest中fixtureAPI簡單說明
這篇文章主要為大家介紹了Python自動化測試pytest中fixtureAPI的簡單說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-10-10
Ubuntu中安裝指定Python版本方法詳解(理論上各版本通用)
現(xiàn)在基于linux的發(fā)行版本有很多,有centos,ubuntu等,一般基于linux的衍生系統(tǒng)至少都安裝了Python2版本,但是現(xiàn)在Python已經是3.x版本大行其道了,這篇文章主要給大家介紹了關于Ubuntu中安裝指定Python版本方法的相關資料,理論上各版本通用,需要的朋友可以參考下2023-06-06
Python 利用pandas和mysql-connector獲取Excel數(shù)據寫入到MySQL數(shù)據庫
在實際應用中,我們可能需要將Excel表格中的數(shù)據導入到MySQL數(shù)據庫中,以便于進行進一步的數(shù)據分析和處理,本文將介紹如何使用Python將Excel表格中的數(shù)據插入到MySQL數(shù)據庫中,需要的朋友可以參考下2023-10-10

