本篇文章主要介紹 Python 操作 MySQL 的時候,常用的類別和方法,使用的套件是 mysql-connector-python,分別介紹兩個類別 MySQLConnectionMySQLCursor 的方法

1
pip install mysql-connector-python
  • MySQLConnection 類別
    • MySQLConnection 關閉方法
    • MySQLConnection 交易方法
    • MySQLConnection 連線方法
    • MySQLConnection cursor
  • MySQLCursor 類別
    • MySQLCursor 關閉方法
    • MySQLCursor 執行方法
    • MySQLCursor 獲取方法

MySQLConnection 類別

MySQLConnection 是用來管理應用程式和 MySQL 伺服器的連線,可以用來傳送 SQL commands、SQL statements 和讀取結果

MySQLConnection 關閉方法

MySQLConnection.close(): 同步版本的 disconnect(),通常使用此命令進行關閉
MySQLConnection.disconnect(): 傳送 QUIT Command 且關閉 socket
MySQLConnection.shutdown(): 直接關閉 socket,不傳送 QUIT Command

MySQLConnection 交易方法

交易 (Transaction): 用來處理數個 SQL statements,全部執行成功,或全部不執行,不會執行到一半造成資料異常
MySQLConnection.commit(): 傳送 COMMIT statement 給 MySQL 伺服器,預設是不使用 autocommit,每次交易後要呼叫此方法
MySQLConnection.rollback(): 傳送 ROLLBACK statement 給 MySQL 伺服器,回復當次交易改變的資料

MySQLConnection 連線方法

MySQLConnection.connect(): 建立一個連線到 MySQL 伺服器,並開始一個 session
MySQLConnection.is_connected(): 使用 ping() 確認 MySQL 連線是否可用,不一樣的是此方法會回傳 bool,而非 raise exception
MySQLConnection.ping(): 確認 MySQL 連線是否可用,當連線不可用時會 raise exception,同時提供 reconnect 的屬性自動重新連線

MySQLConnection cursor

MySQLConnection.cursor(): 回傳一個 MySQLCursor() 物件

MySQLCursor 類別

MySQLCursor 是一個用來執行 SQL statements 的類別,下列是繼承於 MySQLCursor 相關的子類別

  1. MySQLCursorBuffered
  2. MySQLCursorRaw
  3. MySQLCursorBufferedRaw
  4. MySQLCursorDict
  5. MySQLCursorBufferedDict
  6. MySQLCursorNamedTuple
  7. MySQLCursorBufferedNamedTuple
  8. MySQLCursorPrepared

MySQLCursor 關閉方法

MySQLCursor.close(): 關閉當前 cursor,重新設定所有結果,確保沒有被原本的 MySQLConnection 物件參考

MySQLCursor 執行方法

MySQLCursor.execute(): 這個方法用來執行對資料庫的操作
MySQLCursor.executemany(): 這個方法用來執行對資料庫的操作,並搭配數組參數,例如插入多筆資料

MySQLCursor 獲取方法

MySQLCursor.fetchone(): 這個方法收到搜尋結果的下一列,回傳一筆 tuples,若沒有資料則回傳 None
MySQLCursor.fetchall(): 取得所有尋結果,回傳一個 tuples 列表
MySQLCursor.fetchmany(): 取得多筆尋結果,可指定要求的筆數,若可用資料筆數少於要求筆數,則回傳剩餘的筆數

fetchall()fetchmany() 使用 fetchone() 實作
cursor 作為迭代器時,每一筆資料也是使用 fetchone() 取得