mysql_python.md

mysql-connector-python 是由 Oracle 提供的官方 Python 套件,用於與 MySQL 資料庫進行連線與操作。

安裝

pip install mysql-connector-python

基本連線與查詢範例

import mysql.connector

# 建立連線
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="your_password",
    database="test"
)

cursor = conn.cursor()

# 執行查詢
cursor.execute("SELECT * FROM mytable")

# 取得結果
results = cursor.fetchall()
for row in results:
    print(row)

# 關閉連線
cursor.close()
conn.close()

建立資料表與新增資料

cursor.execute("""
CREATE TABLE IF NOT EXISTS mytable (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    age INT
)
""")

cursor.execute("INSERT INTO mytable (name, age) VALUES (%s, %s)", ("Alice", 30))
conn.commit()

使用參數化查詢(防止 SQL Injection)

name = "Bob"
age = 25
cursor.execute("INSERT INTO mytable (name, age) VALUES (%s, %s)", (name, age))
conn.commit()

查詢與條件篩選

cursor.execute("SELECT * FROM mytable WHERE age > %s", (20,))
for row in cursor.fetchall():
    print(row)

更新與刪除資料

# 更新資料
cursor.execute("UPDATE mytable SET age = %s WHERE name = %s", (28, "Alice"))
conn.commit()

# 刪除資料
cursor.execute("DELETE FROM mytable WHERE name = %s", ("Bob",))
conn.commit()

取得資料筆數與逐筆讀取

cursor.execute("SELECT * FROM mytable")

# 總筆數
print("rows:", cursor.rowcount)

# 逐筆讀取
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()
cursor.execute("SELECT * FROM mytable WHERE age > %s", (20,))
for row in cursor.fetchall():
print(row)

錯誤處理範例

try:
    conn = mysql.connector.connect(...)
    cursor = conn.cursor()
    # 執行動作
except mysql.connector.Error as err:
    print(f"MySQL 錯誤: {err}")
finally:
    if cursor:
        cursor.close()
    if conn:
        conn.close()

mysql-connector-python 適合用於資料存取、後端整合與自動化資料處理。也可搭配 pandas 使用 pd.read_sql() 整合分析流程。

Last updated