Featured image of post Python連接資料庫模組PyMysql介紹

Python連接資料庫模組PyMysql介紹

PyMySQL 是一個功能強大的 MySQL 客戶端庫,尤其在需要自訂超時設定時提供了靈活性。

PyMySQL 是一個純 Python 實現的 MySQL 客戶端庫,用於連接 MySQL 資料庫並執行 SQL 操作。它相容於 Python 3.x,且不依賴於 MySQL 的 C 庫,因此在許多環境中使用方便,特別是在沒有 MySQL 的 C 庫支援的環境中。本文將介紹 PyMySQL 模組的基本功能以及它與其他常見 MySQL 模組(如 MySQLdb)的優勢。

pymysql

1. PyMySQL 模組簡介

PyMySQL 提供與 MySQL 資料庫互動所需的所有功能,包括:

  • 支援 MySQL 的連接、查詢、事務管理。
  • 支援執行各種 SQL 查詢操作,如 SELECT、INSERT、UPDATE、DELETE。
  • 支援連接池、儲存過程呼叫等高階功能。
  • 與 MySQL 資料庫的相容性佳,能夠處理 MySQL 8.x 及以下版本。

安裝 PyMySQL

安裝 PyMySQL 非常簡單,可以透過 Python 的套件管理工具 pip 進行安裝:

1
pip install pymysql

基本用法示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import pymysql

# 建立資料庫連接
connection = pymysql.connect(
    host='localhost',        # MySQL 主機
    user='your_username',    # 使用者名稱
    password='your_password', # 密碼
    db='your_database',      # 資料庫名稱
    charset='utf8mb4',       # 字元集
)

try:
    with connection.cursor() as cursor:
        sql = "SELECT * FROM your_table"
        cursor.execute(sql)
        result = cursor.fetchall()
        print(result)
finally:
    connection.close()

2. PyMySQL 與其他模組的優勢對比

與 MySQLdb 的對比

MySQLdb 是 Python 中最早期的 MySQL 客戶端庫,廣泛應用於早期的 Python MySQL 專案。但它有以下限制:

  • 需要編譯和安裝 C 擴展:對於沒有 C 編譯器的環境,安裝 MySQLdb 會比較麻煩。
  • 相容性差:僅支援 Python 2.x 或部分版本的 Python 3.x,導致新專案中不容易使用。

相比之下,PyMySQL 的優勢包括:

  • 純 Python 實現:不需要編譯 C 擴展,因此跨平台使用更方便,尤其在沒有 C 編譯器的環境中。
  • 相容 Python 3.x:支援 Python 3.x 是 PyMySQL 的一個重要特性,而 MySQLdb 在某些版本的 Python 3 中可能無法正常運作。
  • 安裝簡便:僅需 pip install pymysql 即可安裝,非常適合現代的 Python 專案。

與 MySQL Connector 的對比

MySQL Connector 是 Oracle 官方提供的 MySQL 驅動,支援 Python 3 和 Python 2,但相比於 PyMySQL,它有以下缺點:

  • 依賴於 C 庫:與 PyMySQL 相比,它依賴於 C 庫,雖然在性能上可能會有一些優勢,但在某些環境下會增加安裝和部署的複雜性。
  • 安裝包較大MySQL Connector 的安裝包較大,可能會增加部署時的難度。
  • 性能差異:雖然 MySQL Connector 性能較佳,但在大多數應用中,PyMySQL 已經能滿足需求,並且在易用性上更具優勢。

總結

PyMySQL 是一個輕量級、易於安裝且相容性良好的 MySQL 客戶端庫。它適用於需要快速開發和部署的 Python 應用,特別是對於沒有 C 擴展支援的環境,PyMySQL 提供了一個非常不錯的解決方案。

使用 Hugo 建立
主題 StackJimmy 設計