詳解如何使用Python操作MySQL的各種功能和用法
連接MySQL
在Python中,我們可以使用pymysql庫(kù)來(lái)連接MySQL數(shù)據(jù)庫(kù)。
import pymysql
# 連接MySQL
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8')
# 獲取游標(biāo)
cursor = conn.cursor()
# 執(zhí)行SQL語(yǔ)句
cursor.execute('SELECT * FROM users')
# 獲取結(jié)果集
result = cursor.fetchall()
print(result)
# 關(guān)閉游標(biāo)和連接
cursor.close()
conn.close()
以上代碼中,我們首先使用pymysql庫(kù)連接了MySQL數(shù)據(jù)庫(kù),并獲取了游標(biāo)。然后,我們執(zhí)行了一個(gè)簡(jiǎn)單的SELECT語(yǔ)句,并獲取了結(jié)果集。最后,我們關(guān)閉了游標(biāo)和連接。
增刪改查
在MySQL中,我們可以使用INSERT、DELETE、UPDATE和SELECT語(yǔ)句來(lái)完成增刪改查操作。在Python中,我們同樣可以使用pymysql庫(kù)來(lái)執(zhí)行這些操作。
插入數(shù)據(jù)
import pymysql
# 連接MySQL
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8')
# 獲取游標(biāo)
cursor = conn.cursor()
# 插入數(shù)據(jù)
sql = "INSERT INTO users(username, password) VALUES (%s, %s)"
params = ('Tom', '123456')
cursor.execute(sql, params)
# 提交事務(wù)
conn.commit()
# 關(guān)閉游標(biāo)和連接
cursor.close()
conn.close()
以上代碼中,我們使用INSERT語(yǔ)句向users表中插入了一條數(shù)據(jù)。在執(zhí)行execute方法時(shí),我們可以使用占位符%s來(lái)表示參數(shù),然后在執(zhí)行時(shí)傳入對(duì)應(yīng)的參數(shù)。最后,我們提交了事務(wù),并關(guān)閉了游標(biāo)和連接。
刪除數(shù)據(jù)
import pymysql # 連接MySQL conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8') # 獲取游標(biāo) cursor = conn.cursor() # 刪除數(shù)據(jù) sql = "DELETE FROM users WHERE id = %s" params = (1,) cursor.execute(sql, params) # 提交事務(wù) conn.commit() # 關(guān)閉游標(biāo)和連接 cursor.close() conn.close()
以上代碼中,我們使用DELETE語(yǔ)句刪除了users表中id為1的數(shù)據(jù)。在執(zhí)行execute方法時(shí),我們同樣使用了占位符%s來(lái)表示參數(shù)。最后,我們提交了事務(wù),并關(guān)閉了游標(biāo)和連接。
更新數(shù)據(jù)
import pymysql
# 連接MySQL
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8')
# 獲取游標(biāo)
cursor = conn.cursor()
# 更新數(shù)據(jù)
sql = "UPDATE users SET password = %s WHERE username = %s"
params = ('654321', 'Tom')
cursor.execute(sql, params)
# 提交事務(wù)
conn.commit()
# 關(guān)閉游標(biāo)和連接
cursor.close()
conn.close()
以上代碼中,我們使用UPDATE語(yǔ)句更新了users表中username為Tom的數(shù)據(jù)的密碼。在執(zhí)行execute方法時(shí),我們同樣使用了占位符%s來(lái)表示參數(shù)。最后,我們提交了事務(wù),并關(guān)閉了游標(biāo)和連接。
查詢(xún)數(shù)據(jù)
import pymysql
# 連接MySQL
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8')
# 獲取游標(biāo)
cursor = conn.cursor()
# 查詢(xún)數(shù)據(jù)
sql = "SELECT * FROM users WHERE username = %s"
params = ('Tom',)
cursor.execute(sql, params)
# 獲取結(jié)果集
result = cursor.fetchall()
print(result)
# 關(guān)閉游標(biāo)和連接
cursor.close()
conn.close()
以上代碼中,我們使用SELECT語(yǔ)句查詢(xún)了users表中username為Tom的數(shù)據(jù)。在執(zhí)行execute方法時(shí),我們同樣使用了占位符%s來(lái)表示參數(shù)。最后,我們獲取了結(jié)果集,并關(guān)閉了游標(biāo)和連接。
批量操作
在MySQL中,我們可以使用INSERT、DELETE、UPDATE和SELECT語(yǔ)句來(lái)批量操作數(shù)據(jù)。在Python中,我們同樣可以使用pymysql庫(kù)來(lái)批量操作數(shù)據(jù)。
批量插入數(shù)據(jù)
import pymysql
# 連接MySQL
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8')
# 獲取游標(biāo)
cursor = conn.cursor()
# 批量插入數(shù)據(jù)
sql = "INSERT INTO users(username, password) VALUES (%s, %s)"
params = [('Tom', '123456'), ('Jerry', '654321'), ('Alice', '111111')]
cursor.executemany(sql, params)
# 提交事務(wù)
conn.commit()
# 關(guān)閉游標(biāo)和連接
cursor.close()
conn.close()
以上代碼中,我們使用executemany方法批量插入了多條數(shù)據(jù)。在執(zhí)行executemany方法時(shí),我們使用了一個(gè)元組列表來(lái)表示多個(gè)參數(shù)。最后,我們提交了事務(wù),并關(guān)閉了游標(biāo)和連接。
批量刪除數(shù)據(jù)
import pymysql # 連接MySQL conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8') # 獲取游標(biāo) cursor = conn.cursor() # 批量刪除數(shù)據(jù) sql = "DELETE FROM users WHERE id = %s" params = [(1,), (2,), (3,)] cursor.executemany(sql, params) # 提交事務(wù) conn.commit() # 關(guān)閉游標(biāo)和連接 cursor.close() conn.close()
以上代碼中,我們使用executemany方法批量刪除了多條數(shù)據(jù)。在執(zhí)行executemany方法時(shí),我們同樣使用了一個(gè)元組列表來(lái)表示多個(gè)參數(shù)。最后,我們提交了事務(wù),并關(guān)閉了游標(biāo)和連接。
批量更新數(shù)據(jù)
import pymysql
# 連接MySQL
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8')
# 獲取游標(biāo)
cursor = conn.cursor()
# 批量更新數(shù)據(jù)
sql = "UPDATE users SET password = %s WHERE username = %s"
params = [('123456', 'Tom'), ('654321', 'Jerry'), ('111111', 'Alice')]
cursor.executemany(sql, params)
# 提交事務(wù)
conn.commit()
# 關(guān)閉游標(biāo)和連接
cursor.close()
conn.close()
以上就是詳解如何使用Python操作MySQL的各種功能和用法的詳細(xì)內(nèi)容,更多關(guān)于Python操作MySQL的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何利用Python爬蟲(chóng)精準(zhǔn)獲取淘寶商品詳情
淘寶作為中國(guó)最大的電商平臺(tái)之一,擁有海量的商品數(shù)據(jù),對(duì)于研究市場(chǎng)趨勢(shì)、分析消費(fèi)者行為等具有重要意義,本文將詳細(xì)介紹如何使用Python編寫(xiě)爬蟲(chóng)程序,精準(zhǔn)獲取淘寶商品詳情信息,感興趣的朋友跟隨小編一起看看吧2024-12-12
淺談django開(kāi)發(fā)者模式中的autoreload是如何實(shí)現(xiàn)的
下面小編就為大家?guī)?lái)一篇淺談django開(kāi)發(fā)者模式中的autoreload是如何實(shí)現(xiàn)的。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
python KNN算法實(shí)現(xiàn)鳶尾花數(shù)據(jù)集分類(lèi)
這篇文章主要介紹了python KNN算法實(shí)現(xiàn)鳶尾花數(shù)據(jù)集分類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
基于Python實(shí)現(xiàn)多語(yǔ)言朗讀與單詞選擇測(cè)驗(yàn)
在數(shù)字化教育日益普及的今天,開(kāi)發(fā)一款能夠支持多語(yǔ)言朗讀和單詞選擇測(cè)驗(yàn)的程序,對(duì)于語(yǔ)言學(xué)習(xí)者來(lái)說(shuō)無(wú)疑是一個(gè)巨大的福音,下面我們就來(lái)用Python實(shí)現(xiàn)一個(gè)這樣的小程序吧2025-03-03
Python3 無(wú)重復(fù)字符的最長(zhǎng)子串的實(shí)現(xiàn)
這篇文章主要介紹了Python3 無(wú)重復(fù)字符的最長(zhǎng)子串的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
使用Python編寫(xiě)基于DHT協(xié)議的BT資源爬蟲(chóng)
這篇文章主要介紹了使用Python編寫(xiě)基于DHT協(xié)議的BT資源爬蟲(chóng)的方法,文中對(duì)于DHT協(xié)議的相關(guān)知識(shí)也作了補(bǔ)充說(shuō)明,需要的朋友可以參考下2016-03-03
Python 日期區(qū)間處理 (本周本月上周上月...)
這篇文章主要介紹了Python 日期區(qū)間處理 (本周本月上周上月...),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08

