當前位置:
首頁 > 知識 > 一起來學習MySQL和Python

一起來學習MySQL和Python



簡介



對於任何功能完整的可部署應用程序,數據的持久性是必不可少的。存儲數據的一種簡單方法是將其寫入硬碟中的文件,但是出於顯而易見的原因,我們更願意將特定於應用程序的數據寫入資料庫。Python為將數據寫入廣泛的資料庫提供了語言支持。

Python 資料庫 API

Python對資料庫編程的核心支持是Python DB API (

PEP - 249

),它不依賴於任何特定的資料庫引擎。正確的實現方式是導入Python DB API並在程序中使用,這取決於我們在持久層使用的資料庫。在本教程中,我們將演示如何使用Python連接MySQL資料庫並使用它執行事務。為此,我們將使用

MySQLdb

Python包。

在使用Python連接資料庫之前,我們需要為Python安裝MySQL連接器。這可以通過兩種方式實現:




  • 一種方法是從

    MySQL官方網站

    直接下載相關操作系統和相關位版本的安裝程序。



  • 另一種方法是使用pip來安裝它


如果本地機器上安裝了特定的MySQL版本,那麼你可能需要一個特定的MySQL 連接器版本,這樣就不會出現兼容性問題,我們可以使用以下命令:


最後,我們需要安裝MySQL客戶端模塊,使我們能夠從我們的Python應用程序中連接到MySQL資料庫,它將作為客戶端:




連接資料庫

安裝好連接器之後,在執行Python文件時,

import MySQLdb

語句應該不會拋出任何錯誤了。

先決條件

:本文假定讀者對資料庫概念有基本的理解,並對MySQL資料庫有明確的了解,同時具有結構化查詢語言(SQL)的相關知識。但是,本節還是解釋了創建資料庫和用戶的基本過程。遵循以下步驟:




  • 確保MySQL伺服器正在運行。這可以通過MySQL 工作台 ->伺服器狀態進行檢查。



  • 打開MySQL工作台或MySQL 命令行。創建一個新資料庫,將其命名為

    pythondb




  • 創建一個新用戶

    pythonuser

    ,密碼為

    pythonpwd123

    ,並授予對

    pythondb

    的訪問許可權。


檢查到pythondb的連接

下面是一個簡單的腳本,可用於以編程方式測試到新創建資料庫的連接:


上面顯示的版本號只是一個簡單的數字。它應該匹配已安裝MySQL伺服器的版本。

我們再來仔細看看上面的示常式序,來了解它是如何工作的。首先,

import MySQLdb

用於導入所需的python模塊。

MySQLdb.connect()

方法使用主機名、用戶名、密碼和資料庫名創建一個資料庫連接。成功連接資料庫後,它將返回一個連接對象(在這裡以

dbconnect

引用它)。

通過使用連接對象,我們可以在關閉連接之前執行查詢、提交事務和回滾事務。

在獲得連接對象之後,我們需要獲得一個

MySQLCursor

對象,以便使用

execute

方法執行查詢。可以使用

fetchall、fetchone

fetchmany

方法檢索事務的結果集,本教程後面將討論這些方法。

除了執execute方法之外,還有三個與資料庫事務相關的重要方法。現在我們將簡要了解這些方法。

dbconnect.commit()

方法通知資料庫,在調用此函數之前執行的更改將完成,如果事務成功,則無法回滾到以前狀態。

有時,如果發生事務失敗,我們需要將資料庫更改為失敗發生之前的狀態,這樣數據就不會丟失或損壞。在這種情況下,我們需要使用

dbconnect.rollback()

將資料庫回滾到以前的狀態。

最後,使用

dbconnect.close()

方法關閉到資料庫的連接。要執行進一步的事務,我們需要創建一個新連接。

新建一個表

一旦成功地建立了與

pythondb

的連接,我們就可以開始下一步了。讓我們在其中創建一個新表:


執行上述腳本之後,你應該能看到一個為名為

pythondb

的庫創建的名為

movie

的新表。可以使用MySQL 工作台來查看。

執行CRUD操作

現在,我們將通過Python腳本在新創建的資料庫表中執行一些插入、讀取、修改和刪除操作。

創建一條新記錄

下面的腳本演示了如何使用Python腳本將一條新記錄插入MySQL資料庫:


從表中讀取行

在資料庫中插入一個新行之後,可以使用游標對象以三種方式來獲取數據:



  • cursor.fetchall()

    -可用於獲取所有行



  • cursor.fetchmany()

    -可用於獲取選定的行



  • cursor.fetchone()

    -只能用於從結果集中獲取第一行

為了簡單起見,我們將使用「select all」SQL查詢,並在

fetchal

l

方法的結果集上使用for循環來列印單個記錄


更新行

現在讓我們把「Bruce Almighty」的類型從Comedy改為Staire:


刪除記錄

下面是一個Python腳本,演示了如何刪除一個資料庫行:




結論

在本文中,我們學習了如何使用Python DB API來連接到資料庫。具體來說,我們了解了如何使用Python DB API的MySQLdb實現來建立到MySQL資料庫的連接。我們還學習了如何使用資料庫來執行事務。

英文原文:https://stackabuse.com/getting-started-with-mysql-and-python/


譯者:一瞬


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python程序員 的精彩文章:

來,畫原型,賺120元酬金
Python金融數據分析為何這麼火???

TAG:Python程序員 |