Python 中訪問 MySQL 的類庫有好多,這裡用的是MySqldb。
MySQLdb 是用於Python連結Mysql資料庫的介面,它實現了 Python 資料庫 API 規範 V2.0,基於 MySQL C API 上建立的。
方法/步驟
匯入MySQLdb
執行如果報找不到module,需要先去安裝MySQLdb
測試資料庫連線
# 開啟資料庫連線
db = MySQLdb.connect(host=host,user=user,passwd=passwd,db=db,port=port)
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# 使用execute方法執行SQL語句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法獲取一條資料庫。
data = cursor.fetchone()
print "Database version : %s " % data
# 關閉資料庫連線
db.close()
指令碼執行結果
獲得資料庫版本
建立資料庫表
資料庫插入操作
資料庫查詢操作
Python查詢Mysql使用 fetchone() 方法獲取單條資料, 使用fetchall() 方法獲取多條資料。
fetchone(): 該方法獲取下一個查詢結果集。結果集是一個物件
fetchall():接收全部的返回結果行.
rowcount: 這是一個只讀屬性,並返回執行execute()方法後影響的行數。
資料庫更新操作
執行事務
事務機制可以確保資料一致性。
事務應該具有4個屬性:原子性、一致性、隔離性、永續性。這四個屬性通常稱為ACID特性。
原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性(consistency)。事務必須是使資料庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。
永續性(durability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對資料庫中資料的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
對於支援事務的資料庫, 在Python資料庫程式設計中,當遊標建立之時,就自動開始了一個隱形的資料庫事務。
commit()方法遊標的所有更新操作,rollback()方法回滾當前遊標的所有操作。每一個方法都開始了一個新的事務。
錯誤處理
DB API中定義了一些資料庫操作的錯誤及異常,下表列出了這些錯誤和異常: