python3連接MySQL數據庫
- 2020 年 1 月 9 日
- 筆記
環境:python 3.6.1 + mysql 5.1
Python3 支持用 pymysql 模塊來鏈接數據庫
1、pymysql安裝
windows下:pip install pymysql 直接安裝
官方文檔:http://www.pymssql.org/en/stable/
2、實現思路
和用C++訪問數據庫方法基本相同
A. 通過pymysql模塊的方法,與數據庫建立連接
B. 編寫SQL語句
C. 通過連接的返回的數據庫對象,調用相應方法執行SQL語句
D. 讀取數據庫返回的數據(即緩存區中的數據)
E. 對相應的返回數據進行操作
F. 關閉數據庫對象,關閉數據庫
3、查詢語句執行流程圖:
4、增刪改語句執行流程圖:
5、事務:訪問和更新數據庫的一個程序執行單元
– 原子性:事務中包括的操作要麼做,要麼都不做(捆綁不可分割)
– 一致性:事務必須使數據庫從一致性狀態變到另一個一致性狀態
– 隔離性:一個事務的執行不能被其他事務干擾
– 持久性:事務一旦提交,它對數據庫的改變就是永久性的
6、增刪改查功能實現代碼:
#導入pymysql模塊 import pymysql class MYSQL: # 初始化函數,初始化連接列表 def __init__(self,host,user,pwd,dbname): self.host = host self.user = user self.pwd = pwd self.dbname = dbname # 獲取數據庫游標對象cursor # 游標對象:用於執行查詢和獲取結果 def getCursor(self): # 建立數據庫連接 self.db = pymysql.connect(self.host,self.user,self.pwd,self.dbname) # 創建游標對象 cur = self.db.cursor() # 返回 return cur # 查詢操作 def queryOperation(self,sql): # 建立連接獲取游標對象 cur = self.getCursor() # 執行SQL語句 cur.execute(sql) # 獲取數據的行數 row = cur.rowcount # 獲取查詢數據 # fetch* # all 所有數據,one 取結果的一行,many(size),去size行 dataList = cur.fetchall() # 關閉游標對象 cur.close() # 關閉連接 self.db.close() # 返回查詢的數據 return dataList,row # 刪除操作 def deleteOperation(self,sql): # 獲取游標對象 cur = self.getCursor() try: # 執行SQL語句 cur.execute(sql) # 正常結束事務 self.db.commit() except Exception as e: print(e) # 數據庫回滾 self.db.rollback() # 關閉游標對象 cur.close() # 關閉數據庫連接 self.db.close() # 數據更新 def updateOperation(self,sql): cur = self.getCursor() try: cur.execute(sql) self.db.commit() except Exception as e: print(e) self.db.rollback() cur.close() self.db.close() # 添加數據 def insertOperation(self,sql): cur = self.getCursor() try: cur.execute(sql) self.db.commit() except Exception as e: print(e) self.db.rollback() cur.close() self.db.close()
正在持續更新,若有錯誤,歡迎大家指正。