詳解如何使用Python操作MySQL的各種功能和用法
連接MySQL
在Python中,我們可以使用pymysql
庫來連接MySQL數(shù)據(jù)庫。
import pymysql # 連接MySQL conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8') # 獲取游標(biāo) cursor = conn.cursor() # 執(zhí)行SQL語句 cursor.execute('SELECT * FROM users') # 獲取結(jié)果集 result = cursor.fetchall() print(result) # 關(guān)閉游標(biāo)和連接 cursor.close() conn.close()
以上代碼中,我們首先使用pymysql
庫連接了MySQL數(shù)據(jù)庫,并獲取了游標(biāo)。然后,我們執(zhí)行了一個簡單的SELECT
語句,并獲取了結(jié)果集。最后,我們關(guān)閉了游標(biāo)和連接。
增刪改查
在MySQL中,我們可以使用INSERT
、DELETE
、UPDATE
和SELECT
語句來完成增刪改查操作。在Python中,我們同樣可以使用pymysql
庫來執(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
語句向users
表中插入了一條數(shù)據(jù)。在執(zhí)行execute
方法時,我們可以使用占位符%s
來表示參數(shù),然后在執(zhí)行時傳入對應(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
語句刪除了users
表中id
為1的數(shù)據(jù)。在執(zhí)行execute
方法時,我們同樣使用了占位符%s
來表示參數(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
語句更新了users
表中username
為Tom
的數(shù)據(jù)的密碼。在執(zhí)行execute
方法時,我們同樣使用了占位符%s
來表示參數(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 = "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
語句查詢了users
表中username
為Tom
的數(shù)據(jù)。在執(zhí)行execute
方法時,我們同樣使用了占位符%s
來表示參數(shù)。最后,我們獲取了結(jié)果集,并關(guān)閉了游標(biāo)和連接。
批量操作
在MySQL中,我們可以使用INSERT
、DELETE
、UPDATE
和SELECT
語句來批量操作數(shù)據(jù)。在Python中,我們同樣可以使用pymysql
庫來批量操作數(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ù)。最后,我們提交了事務(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ù)。最后,我們提交了事務(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的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談django開發(fā)者模式中的autoreload是如何實現(xiàn)的
下面小編就為大家?guī)硪黄獪\談django開發(fā)者模式中的autoreload是如何實現(xiàn)的。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08python KNN算法實現(xiàn)鳶尾花數(shù)據(jù)集分類
這篇文章主要介紹了python KNN算法實現(xiàn)鳶尾花數(shù)據(jù)集分類,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python3 無重復(fù)字符的最長子串的實現(xiàn)
這篇文章主要介紹了Python3 無重復(fù)字符的最長子串的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python 日期區(qū)間處理 (本周本月上周上月...)
這篇文章主要介紹了Python 日期區(qū)間處理 (本周本月上周上月...),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08