1. Python 與 MySQL 的整合:入門
Python 是一種非常靈活的程式語言,可以與各種資料庫管理系統(DBMS)整合。特別是 MySQL,作為一個廣泛使用的開源關聯式資料庫,搭配 Python 使用時能實現強大的資料操作。
本文將介紹如何使用 Python 連接 MySQL,並執行基本的資料庫操作(新增、查詢、更新、刪除)。
2. MySQL 與 Python 整合所需的環境設定
首先需要建立 Python 與 MySQL 的整合環境。本節將說明必要的軟體安裝方式與設定方法。
2.1 安裝 MySQL
MySQL 的安裝方式依作業系統而異,以下是各 OS 的簡單安裝方法:
- Windows:從 MySQL 官方網站下載安裝程式,依指引完成安裝。
- Mac:透過 Homebrew 執行
brew install mysql
指令安裝。 - Linux:在 Debian 系統可使用
sudo apt-get install mysql-server
安裝。
2.2 Python 環境設定
接著在 Python 環境中安裝必要的套件,以便與 MySQL 連接。常用的套件有:
- mysql-connector-python:由 Oracle 提供的官方 MySQL 連接套件。
- PyMySQL:純 Python 實作,與 MySQLdb 相容的套件。
安裝方式很簡單,只需執行以下指令:
pip install mysql-connector-python
若使用 PyMySQL
,則執行:
pip install pymysql
2.3 套件的差異
mysql-connector-python
是官方套件,效能與支援度較完整;而 PyMySQL
較輕量,適合需要 MySQLdb 相容功能的專案。選擇哪一個取決於專案需求。

3. 使用 Python 連接 MySQL 的基本步驟
透過 Python 連接 MySQL 非常簡單。本節將說明如何使用 Python 連接 MySQL 並操作資料表。
3.1 連接 MySQL 資料庫
以下是使用 mysql-connector-python
連接 MySQL 的範例程式碼:
import mysql.connector
# MySQL 連線資訊
conn = mysql.connector.connect(
host='localhost',
user='root',
password='password',
database='test_db'
)
# 測試連線
if conn.is_connected():
print("成功連線至 MySQL 伺服器!")
此程式使用 mysql.connector.connect()
函數連接本地端的 MySQL 伺服器,若成功則會輸出確認訊息。
4. 基本的 SQL 操作
成功連接 MySQL 後,就可以進行基本的 SQL 操作。本節將介紹資料的新增、查詢、更新與刪除方法。
4.1 新增資料
要將新資料插入資料表,可以使用以下 SQL 指令:
cursor = conn.cursor()
# 新增資料的查詢
insert_query = "INSERT INTO users (username, email) VALUES (%s, %s)"
data = ("user1", "user1@example.com")
# 執行查詢
cursor.execute(insert_query, data)
# 確認變更
conn.commit()
4.2 查詢資料
要取得資料可使用 SELECT
語句。以下範例將查詢所有使用者資訊:
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
# 輸出結果
for row in rows:
print(row)
4.3 更新資料
要修改既有資料,可以使用 UPDATE
語句:
update_query = "UPDATE users SET email = %s WHERE username = %s"
cursor.execute(update_query, ("new_email@example.com", "user1"))
conn.commit()
4.4 刪除資料
要刪除不需要的資料,可以使用 DELETE
語句:
delete_query = "DELETE FROM users WHERE username = %s"
cursor.execute(delete_query, ("user1",))
conn.commit()

5. 進階操作
接下來介紹更進階的操作,例如交易(Transaction)管理與預備語句(Prepared Statement)。
5.1 交易管理
若要一次執行多個操作,並在需要時回滾(Rollback),可以使用交易:
try:
cursor.execute("...")
conn.commit() # 成功則提交
except:
conn.rollback() # 發生錯誤則回滾
5.2 使用預備語句
為了防止 SQL 注入,建議使用預備語句:
stmt = "SELECT * FROM users WHERE username = %s"
cursor.execute(stmt, ("user1",))
6. MySQL 與 Python 的實際應用範例
結合 Python 與 MySQL 可以開發出各種實用的應用程式。本節將透過案例展示如何活用這兩者。
6.1 建立使用者管理系統
使用者管理系統是 Python 與 MySQL 常見的應用案例。以下介紹簡單的設計:
步驟 1:建立使用者資料表
首先建立一個資料表,用來儲存使用者資訊:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL
);
步驟 2:新增使用者註冊功能
以下 Python 程式會透過 INSERT
將新使用者資料寫入資料庫:
import mysql.connector
# 連線至 MySQL
conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test_db')
cursor = conn.cursor()
# 新增使用者資料
insert_query = "INSERT INTO users (username, email, password) VALUES (%s, %s, %s)"
user_data = ("user123", "user123@example.com", "securepassword")
cursor.execute(insert_query, user_data)
# 確認變更
conn.commit()
# 關閉連線
cursor.close()
conn.close()
步驟 3:登入功能
也可以實作登入驗證功能:
# 登入驗證
login_query = "SELECT * FROM users WHERE username = %s AND password = %s"
login_data = ("user123", "securepassword")
cursor.execute(login_query, login_data)
user = cursor.fetchone()
if user:
print("登入成功")
else:
print("登入失敗")
6.2 在資料分析中的應用
將 MySQL 作為資料儲存庫,再搭配 Python 的分析套件,可以進行資料科學與分析。以下以 Pandas 為例:
步驟 1:從 MySQL 取得資料
import mysql.connector
import pandas as pd
# 連線至 MySQL
conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test_db')
cursor = conn.cursor()
# 取得資料並轉換為 DataFrame
query = "SELECT * FROM users"
cursor.execute(query)
rows = cursor.fetchall()
df = pd.DataFrame(rows, columns=['id', 'username', 'email', 'password'])
# 檢視資料
print(df.head())
# 關閉連線
cursor.close()
conn.close()
步驟 2:資料彙總與分析
# 統計不同 email 網域的使用者數量
df['domain'] = df['email'].apply(lambda x: x.split('@')[1])
domain_count = df['domain'].value_counts()
print(domain_count)
如此即可將 MySQL 作為後端資料庫,再結合 Pandas 等工具進行資料分析。

7. 總結與下一步
本文介紹了 Python 與 MySQL 的整合:從基本的連線、SQL 操作,到使用者管理系統範例,以及結合 Pandas 進行資料分析。這項技術是建構 Web 應用與資料處理基礎的重要工具。
7.1 下一步建議
學完本文的基礎內容後,可以繼續探索:
- 整合 Django 或 Flask:使用 Python Web 框架建立更進階的應用。
- 資料庫優化:學習 MySQL 的索引與查詢最佳化,提升效能。
- 大數據分析:透過 Python 對 MySQL 資料進行機器學習與大規模分析。