在 Python 中連線到 MySQL 資料庫

Muhammad Maisam Abbas 2023年12月11日
  1. 使用 Python 的預設 MySQL 聯結器連線到 MySQL 資料庫
  2. 使用 Python 中的 pymysql 庫連線到 MySQL 資料庫
  3. 使用 Python 中的 mysqlclient 庫連線到 MySQL 資料庫
在 Python 中連線到 MySQL 資料庫

本教程將討論和演示如何在 Python 中連線到 MySQL 資料庫。

使用 Python 的預設 MySQL 聯結器連線到 MySQL 資料庫

Oracle 為 Python 提供了一個聯結器來連線其 MySQL 資料庫。這是在 Python 中連線到 MySQL 資料庫的最簡單方法。

我們可以從官網手動下載安裝聯結器,也可以通過命令提示符安裝。

下面給出了為 Python 安裝 MySQL 聯結器的命令。

!pip install mysql-connector-python

安裝完成後,我們需要將這個庫匯入到我們的程式碼檔案中。該過程顯示在以下行中。

import mysql.connector as connector

我們已經匯入了 mysql.connector 庫併為其賦予別名 connector。我們現在可以使用 connector 別名來引用這個庫。

匯入庫後,我們需要使用 connect() 方法建立連線。該方法將 userpasswordhostdatabase 作為輸入引數。

  • user 引數指定當前登入使用者的名稱,
  • password 引數指定該特定使用者的密碼,
  • host 引數指定託管資料庫的伺服器地址,並且
  • database 引數指定我們要連線的資料庫名稱。

我們需要將這行程式碼包裝在 try/except 塊中以進行異常處理。異常處理是任何程式語言中資料庫程式設計的關鍵部分。

下面的程式碼片段向我們展示瞭如何在 Python 中使用異常處理建立連線。

try:
    connection = connector.connect(
        user="root", password="12345", host="127.0.0.1", database="sakila"
    )
except connector.Error as e:
    print("Error: Could not make connection to the MySQL database")
    print(e)

我們使用 connector.Error 在連線資料庫時報告執行時的任何錯誤。我們需要一種方法來對資料庫執行 CRUD(建立、讀取、更新、刪除)操作。

這是通過一個叫做遊標的東西來完成的。

遊標充當用於對資料庫及其表執行操作的指標。我們需要在連線物件中執行 cursor() 來建立遊標。

這顯示在以下程式碼片段中。

cursor = connection.cursor()

一旦建立了遊標,我們就可以執行我們的查詢。我們必須使用 cursor 物件內的 execute() 函式來執行特定查詢。

使用遊標執行查詢的方法如以下程式碼片段所示。

query = "show databases"
cursor.execute(query)

這不會顯示任何輸出,因為查詢的結果儲存在 cursor 中。我們必須遍歷 cursor 並分別顯示每個值以顯示結果。

下面的程式碼片段向我們展示瞭如何做到這一點。

for i in cursor:
    print(i)

輸出:

('information_schema',)
('mysql',)
('performance_schema',)
('sakila',)
('sys',)
('world',)

執行查詢後,我們需要關閉游標並連線以下程式碼。

cursor.close()
connection.close()

雖然用 Python 連線 MySQL 資料庫是最簡單的方法,但它也有缺陷。Oracle 提供的標準 MySQL 聯結器帶有一些細微的錯誤,因此不鼓勵這種方法。

使用 Python 中的 pymysql 庫連線到 MySQL 資料庫

除了使用 Oracle 的預設 python MySQL 聯結器之外,我們還可以使用 pymysql library 連線到 MySQL 資料庫。這也很簡單。

pymysql 庫中也沒有相容性或互操作性問題,因為它是用純 Python 編寫的。

下面給出了安裝 pymysql 庫的命令。

!pip install pymysql

安裝後,我們需要按照上一節中描述的相同步驟進行操作。甚至 pymysql 庫中的方法名稱也與預設 Python 聯結器中的相同。

下面的程式碼示例向我們展示瞭如何連線到 MySQL 資料庫並使用 Python 中的 pymysql 庫執行查詢。

import pymysql

connection = pymysql.connect(
    host="localhost", user="root", password="12345", db="sakila"
)

try:
    cursor = connection.cursor()
    query = "show databases"
    cursor.execute(query)
    for i in cursor:
        print(i)
except connector.Error as e:
    print("Error: Could not make connection to the MySQL database")
    print(e)
cursor.close()
connection.close()

輸出:

('information_schema',)
('mysql',)
('performance_schema',)
('sakila',)
('sys',)
('world',)

輸出與上一節相同,因為我們連線到同一個資料庫並執行了相同的查詢。這裡唯一明顯的區別是匯入庫的名稱。

使用 Python 中的 mysqlclient 庫連線到 MySQL 資料庫

在 Python 中連線到 MySQL 資料庫的另一種好方法是 mysqlclient。要安裝這個庫,我們需要執行以下命令。

!pip install mysqlclient

安裝後,我們需要應用第一節中提到的相同步驟。與前面方法的唯一區別是匯入的庫名稱與安裝期間使用的名稱不同。

我們需要在我們的程式碼中匯入這個 mysqlclient 來匯入 MySQLdb 庫,如下面的編碼示例所示。

import MySQLdb

connection = MySQLdb.connect(
    host="localhost", user="root", password="12345", db="sakila"
)

try:
    cursor = connection.cursor()
    query = "show databases"
    cursor.execute(query)
    for i in cursor:
        print(i)
except connector.Error as e:
    print("Error: Could not make connection to the MySQL database")
    print(e)
cursor.close()
connection.close()

輸出:

('information_schema',)
('mysql',)
('performance_schema',)
('sakila',)
('sys',)
('world',)

輸出仍然與前兩節相同,因為我們連線到類似的資料庫並執行相同的查詢。這裡唯一的區別在於匯入庫的名稱。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Python Database