Python操作MySQL的方法詳細(xì)解讀
一.安裝第三方庫
在Python中,通過使用第三方庫:pymysql,完成對MySQL數(shù)據(jù)庫的操作。
安裝指令:
pip install pymysql
二.在Python中使用
(1) 基本使用
導(dǎo)包-》建立連接-》進(jìn)行xx操作-》關(guān)閉連接:
# 1.導(dǎo)入操作包
from pymysql import Connection
# 2.獲取到MySQL數(shù)據(jù)庫的連接對象
conn = Connection(
host='localhost', # 主機(jī)名或IP地址
port=3306, # 端口號(hào),默認(rèn)3306
user='root', # MySQL賬號(hào)
password='root' # MySQL密碼
)
# 打印MySQL版本信息
print(conn.get_server_info())
# 3.關(guān)閉到數(shù)據(jù)庫的連接
conn.close()
(2) 執(zhí)行建表SQL
導(dǎo)包-》建立連接-》獲取游標(biāo)對象-》選擇數(shù)據(jù)庫-》執(zhí)行相應(yīng)sql-》關(guān)閉連接:
from pymysql import Connection
# 獲取到MySQL數(shù)據(jù)庫的連接對象
conn = Connection(
host='localhost', # 主機(jī)名或IP地址
port=3306, # 端口號(hào),默認(rèn)3306
user='root', # MySQL賬號(hào)
password='root' # MySQL密碼
)
"""
執(zhí)行非查詢性質(zhì)SQL
"""
# 獲取游標(biāo)對象(用于操作數(shù)據(jù)庫)
cursor = conn.cursor()
# 選擇要操作的數(shù)據(jù)庫
conn.select_db("db1")
# 使用游標(biāo)對象,執(zhí)行建表sql語句
cursor.execute("CREATE TABLE tb_user(id INT,name VARCHAR(8),age int)")
# 關(guān)閉到數(shù)據(jù)庫的連接
conn.close()
(3) 執(zhí)行查詢SQL
導(dǎo)包-》建立連接-》獲取游標(biāo)對象-》選擇數(shù)據(jù)庫-》執(zhí)行相應(yīng)sql-》獲取查詢數(shù)據(jù),執(zhí)行xx操作-》關(guān)閉連接:
from pymysql import Connection
# 獲取到MySQL數(shù)據(jù)庫的連接對象
conn = Connection(
host='localhost', # 主機(jī)名或IP地址
port=3306, # 端口號(hào),默認(rèn)3306
user='root', # MySQL賬號(hào)
password='root' # MySQL密碼
)
"""
執(zhí)行查詢性質(zhì)SQL
"""
# 獲取游標(biāo)對象(用于操作數(shù)據(jù)庫)
cursor = conn.cursor()
# 選擇要操作的數(shù)據(jù)庫
conn.select_db("db1")
# 使用游標(biāo)對象,執(zhí)行sql語句
cursor.execute("SELECT * FROM tb_user")
# 獲取查詢結(jié)果,返回元組對象
results: tuple = cursor.fetchall()
for result in results:
print(result)
# 關(guān)閉到數(shù)據(jù)庫的連接
conn.close()
(4) 執(zhí)行插入SQL
導(dǎo)包-》建立連接-》獲取游標(biāo)對象-》選擇數(shù)據(jù)庫-》執(zhí)行相應(yīng)sql-》提交行為-》關(guān)閉連接:
from pymysql import Connection
# 獲取到MySQL數(shù)據(jù)庫的連接對象
conn = Connection(
host='localhost', # 主機(jī)名或IP地址
port=3306, # 端口號(hào),默認(rèn)3306
user='root', # MySQL賬號(hào)
password='root', # MySQL密碼
autocommit=True # 設(shè)置自動(dòng)提交(commit)
)
"""
執(zhí)行插入SQL
"""
# 獲取游標(biāo)對象(用于操作數(shù)據(jù)庫)
cursor = conn.cursor()
# 選擇要操作的數(shù)據(jù)庫
conn.select_db("db1")
# 使用游標(biāo)對象,執(zhí)行sql語句
cursor.execute("Insert into tb_user values(1,'hhy','250')")
# 確認(rèn)插入行為
# 如果在獲取連接對象時(shí)設(shè)置自動(dòng)提交可以不用再寫。
conn.commit()
# 關(guān)閉到數(shù)據(jù)庫的連接
conn.close()
(5) 執(zhí)行修改SQL
導(dǎo)包-》建立連接-》獲取游標(biāo)對象-》選擇數(shù)據(jù)庫-》執(zhí)行相應(yīng)sql-》提交行為-》關(guān)閉連接:
from pymysql import Connection
# 獲取到MySQL數(shù)據(jù)庫的連接對象
conn = Connection(
host='localhost', # 主機(jī)名或IP地址
port=3306, # 端口號(hào),默認(rèn)3306
user='root', # MySQL賬號(hào)
password='root', # MySQL密碼
autocommit=True # 設(shè)置自動(dòng)提交(commit)
)
"""
執(zhí)行修改SQL
"""
# 獲取游標(biāo)對象(用于操作數(shù)據(jù)庫)
cursor = conn.cursor()
# 選擇要操作的數(shù)據(jù)庫
conn.select_db("db1")
# 使用游標(biāo)對象,執(zhí)行sql語句
cursor.execute("UPDATE tb_user set username='hhy' where username = 'fsp'")
# 確認(rèn)修改行為
# 如果在獲取連接對象時(shí)設(shè)置自動(dòng)提交可以不用再寫。
conn.commit()
# 關(guān)閉到數(shù)據(jù)庫的連接
conn.close()
(6) 執(zhí)行刪除SQL
導(dǎo)包-》建立連接-》獲取游標(biāo)對象-》選擇數(shù)據(jù)庫-》執(zhí)行相應(yīng)sql-》提交行為-》關(guān)閉連接:
from pymysql import Connection
# 獲取到MySQL數(shù)據(jù)庫的連接對象
conn = Connection(
host='localhost', # 主機(jī)名或IP地址
port=3306, # 端口號(hào),默認(rèn)3306
user='root', # MySQL賬號(hào)
password='root', # MySQL密碼
autocommit=True # 設(shè)置自動(dòng)提交(commit)
)
"""
執(zhí)行刪除SQL
"""
# 獲取游標(biāo)對象(用于操作數(shù)據(jù)庫)
cursor = conn.cursor()
# 選擇要操作的數(shù)據(jù)庫
conn.select_db("db1")
# 使用游標(biāo)對象,執(zhí)行sql語句
cursor.execute("DELETE from tb_user WHERE username = 'hhy'")
# 確認(rèn)刪除行為
# 如果在獲取連接對象時(shí)設(shè)置自動(dòng)提交可以不用再寫。
conn.commit()
# 關(guān)閉到數(shù)據(jù)庫的連接
conn.close()
(7) 小結(jié)
- pymysql在執(zhí)行數(shù)據(jù)插入或其它產(chǎn)生數(shù)據(jù)更改的SQL語句時(shí),默認(rèn)是需要提交更改的,即,需要通過代碼“確認(rèn)”這種更改行為。
- 如果不想手動(dòng)commit確認(rèn),可以在構(gòu)建連接對象的時(shí)候,設(shè)置自動(dòng)commit的屬性。
- 查詢后,使用游標(biāo)對象.fetchall()可得到全部的查詢結(jié)果封裝入嵌套元組內(nèi)
- 可使用游標(biāo)對象.execute()執(zhí)行SQL語句
三.全文概覽

到此這篇關(guān)于Python操作MySQL的方法詳細(xì)解讀的文章就介紹到這了,更多相關(guān)Python操作MySQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python利用pymysql和openpyxl實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫并插入數(shù)據(jù)
- Python 利用pandas和mysql-connector獲取Excel數(shù)據(jù)寫入到MySQL數(shù)據(jù)庫
- python批量插入數(shù)據(jù)到mysql的3種方法
- Python操作MySQL數(shù)據(jù)庫的基本方法(查詢與更新)
- Python連接MySQL數(shù)據(jù)庫并查找表信息
- 使用Python實(shí)現(xiàn)Mysql數(shù)據(jù)庫相關(guān)操作詳解
- Python使用Pandas庫實(shí)現(xiàn)MySQL數(shù)據(jù)庫讀寫
相關(guān)文章
Python使用Srapy框架爬蟲模擬登陸并抓取知乎內(nèi)容
這里我們來看如何通過Python使用Srapy框架爬蟲模擬登陸并抓取知乎內(nèi)容的實(shí)例,要實(shí)現(xiàn)持續(xù)的爬取需要利用到cookie的保存,我們首先還是來回顧一下cookie的相關(guān)知識(shí)點(diǎn):2016-07-07
解決使用PyCharm時(shí)無法啟動(dòng)控制臺(tái)的問題
今天小編就為大家分享一篇解決使用PyCharm時(shí)無法啟動(dòng)控制臺(tái)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
python數(shù)據(jù)可視化自制職位分析生成崗位分析數(shù)據(jù)報(bào)表
之前網(wǎng)上也有不少關(guān)于行業(yè)的分析數(shù)據(jù),今天我們就根據(jù)不同崗位,公司類型規(guī)模,學(xué)歷要求,薪資分布等來進(jìn)行分析,把職位分析功能集合封裝起來,做成一個(gè)小工具分享給大家吧2021-09-09
利用Python中的mock庫對Python代碼進(jìn)行模擬測試
這篇文章主要介紹了利用Python中的mock庫對Python代碼進(jìn)行模擬測試,mock庫自從Python3.3依賴成為了Python的內(nèi)置庫,本文也等于介紹了該庫的用法,需要的朋友可以參考下2015-04-04
深入挖掘Python自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Python中自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12
Python從csv文件中讀取數(shù)據(jù)及提取數(shù)據(jù)的方法
這篇文章主要介紹了Python從csv文件中讀取數(shù)據(jù)并提取數(shù)據(jù)的方法,文中通過多種方法給大家講解獲取指定列的數(shù)據(jù),并存入一個(gè)數(shù)組中,每種方法通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-11-11

