Python模塊-pymssql


Python默認的數據庫是 SQLlite,不過它對MySql以及SQL server的支持也可以。如果想鏈接操作SQL server,需使用第三方包pymssql

pymssql是一個Python的數據庫接口,基於FreeTDS構建,對_mssql模塊進行了封裝,遵循Python的DBAPI規范,而FreeTDS是一個C語言連接sqlserver的公共開源庫

工作原理

  1. 使用connect創建連接對象;
  2. connect.cursor創建游標對象,SQL語句的執行在游標上執行;
  3. cursor.execute()方法執行SQL語句,cursor.fetch()方法獲取查詢結果;
  4. 如果有反向修改,需執行connect.commit();
  5. 調用close方法關閉游標cursor和數據庫連接;

注意:https://www.cnblogs.com/baiyangcao/p/pymssql_basic.html

  1. 一個連接一次只能有一個游標的查詢處於活躍狀態!
  2. 可以通過使用with語句來省去顯示的調用close方法關閉連接和游標
  3. pymssql 2.0.0以上的版本可以通過cursor.callproc方法來調用存儲過程

常用封裝

class MSSQL:
    # 類的構造函數,初始化數據庫連接ip或者域名,以及用戶名,密碼,要連接的數據庫名稱
    def __init__(self,host,user,pwd,db): 
        self.host=host
        self.user=user
        self.pwd=pwd
        self.db=db
    
    # 得到數據庫連接信息函數,返回: conn.cursor()
    def __GetConnect(self):
        self.conn=pymssql.connect(host=self.host,
                                  user=self.user,
                                  password=self.pwd,
                                  database=self.db,
                                  charset='utf8')
        cur=self.conn.cursor()  #將數據庫連接信息,賦值給cur。
        if not cur:
            raise(NameError,"連接數據庫失敗")
        else:
            return cur
        
        
    #執行查詢語句,返回的是一個包含tuple的list,list的元素是記錄行,tuple的元素是每行記錄的字段
    def ExecQuery(self,sql):  
        cur = self.__GetConnect() #獲得數據庫連接信息
        cur.execute(sql)          #執行Sql語句
        resList = cur.fetchall()  #獲得所有的查詢結果
        self.conn.close()         #查詢完畢后必須關閉連接
        return resList            #返回查詢結果
    
    
    #執行Sql語句函數,無返回結果的,方向修改的
    def ExecNonQuery(self,sql):
        cur = self.__GetConnect()
        cur.execute(sql)
        self.conn.commit()
        self.conn.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM