詳解如何使用Python操作MySQL的各種功能
當(dāng)今互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)處理已經(jīng)成為了一個(gè)非常重要的任務(wù)。而MySQL作為一款開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù),被廣泛應(yīng)用于各種場(chǎng)景。本篇博客將介紹如何使用Python操作MySQL的各種功能,以及一些高級(jí)用法。
連接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()
到此這篇關(guān)于詳解如何使用Python操作MySQL的各種功能的文章就介紹到這了,更多相關(guān)Python操作MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python的Pandas時(shí)序數(shù)據(jù)詳解
這篇文章主要為大家詳細(xì)介紹了Pandas時(shí)序數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03Django給表單添加honeypot驗(yàn)證增加安全性
這篇文章主要介紹了Django給表單添加honeypot驗(yàn)證增加安全性的方法,幫助大家更好的理解和學(xué)習(xí)使用Django框架,感興趣的朋友可以了解下2021-05-05Pytorch?autograd與邏輯回歸的實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了Pytorch?autograd與邏輯回歸的實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Django 拼接兩個(gè)queryset 或是兩個(gè)不可以相加的對(duì)象實(shí)例
這篇文章主要介紹了Django 拼接兩個(gè)queryset 或是兩個(gè)不可以相加的對(duì)象實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03yolov5 win10 CPU與GPU環(huán)境搭建過(guò)程
這篇文章主要介紹了yolov5 win10 CPU與GPU環(huán)境搭建過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Python實(shí)現(xiàn)杰卡德距離以及環(huán)比算法講解
這篇文章主要為大家介紹了Python實(shí)現(xiàn)杰卡德距離以及環(huán)比算法的示例講解,有需要的朋友可以借鑒參考下2022-02-02