python3連接MySQL數據庫

環境: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()

正在持續更新,若有錯誤,歡迎大家指正。