python:利用pymssql模塊操作SQL server數據庫


 python默認的數據庫是 SQLlite,不過它對MySql以及SQL server的支持也可以。這篇博客,介紹下如何在Windows下安裝pymssql庫並進行連接使用。。。

環境:Windows_64位

版本:python3.6

 

一、簡單介紹

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

它們的關系如下:

具體的內容,可查閱官方文檔進行了解:http://pymssql.org/en/stable/index.html

 

二、下載安裝

有兩種安裝方式,下面分別介紹:

1、vs+pymssql

通過官方文檔可知,要安裝pymssql首先需要安裝vs,根據上圖,選擇自己的python版本對應的vs版本,以及操作系統版本進行安裝包下載:

FreeTDS下載地址:https://github.com/ramiro/freetds/releases/

pymssql下載地址:https://pypi.org/project/pymssql/

下載對應的版本,進行安裝,pymssql可以使用pip命令安裝,也可以安裝包安裝,根據個人喜好即可。

安裝后,可以通過CMD進入命令行,然后輸入 pip show mymssql ,查看是否安裝成功,示例如下:

PS:這種方法安裝,可能會出現一些迷之報錯,很蛋疼,如果這種方法安裝搞不定的話,可以看下面第二種安裝方法。。。

 

2、安裝.whl包

如果認真看過官方文檔介紹的童鞋,應該注意到了這里的內容,Windows下可以通過安裝.whl包來進行安裝pymssql,文檔介紹如下:

首先通過在python的shell中輸入命令 import pip; print(pip.pep425tags.get_supported()) 查看pip支持的文件名和版本,示例如下:

然后可以在python的非官方Windows擴展包站點獲取對應的.whl文件,鏈接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql

進入該站點以后,Ctrl+F搜索pymssql,然后點擊,示例如下:

到達這里,選擇你需要的.whl包下載:

然后進入你的python安裝包目錄Scripts,利用pip命令,安裝即可:

 

三、連接使用

1、pymssql工作原理

①、使用connect創建連接對象;

②、connect.cursor創建游標對象,SQL語句的執行在游標上執行;

③、cursor.execute()方法執行SQL語句,cursor.fetch()方法獲取查詢結果;

④、調用close方法關閉游標cursor和數據庫連接;

 

2、示例代碼

 1 # coding=utf-8
 2 import pymssql  3 
 4 class SQLServer:  5     def __init__(self,server,user,password,database):  6     # 類的構造函數,初始化DBC連接信息
 7         self.server = server  8         self.user = user  9         self.password = password 10         self.database = database 11 
12     def __GetConnect(self): 13     # 得到數據庫連接信息,返回conn.cursor()
14         if not self.database: 15             raise(NameError,"沒有設置數據庫信息") 16         self.conn = pymssql.connect(server=self.server,user=self.user,password=self.password,database=self.database) 17         cur = self.conn.cursor() 18         if not cur: 19             raise(NameError,"連接數據庫失敗")  # 將DBC信息賦值給cur
20         else: 21             return cur 22              
23     def ExecQuery(self,sql): 24         '''
25  執行查詢語句 26  返回一個包含tuple的list,list是元素的記錄行,tuple記錄每行的字段數值 27         '''
28         cur = self.__GetConnect() 29         cur.execute(sql) # 執行查詢語句
30         result = cur.fetchall() # fetchall()獲取查詢結果
31         # 查詢完畢關閉數據庫連接
32  self.conn.close() 33         return result 34 
35 def main(): 36     msg = SQLServer(server="127.0.0.1",user="test",password="Test321",database="TEST") 37     result = msg.ExecQuery("SELECT TOP 1 Value FROM t_Security_Code WHERE Mobile = '18501007700' ORDER BY InsertTime DESC") 38     for (Value) in result: 39         print(Value) 40  
41 if __name__ == '__main__': 42  main()

 PS:初始化數據庫連接信息,數據庫地址:server,密碼:password,數據庫:database!!!

剛開始我個人也是自定義的,后來老報錯,查詢了配置信息后才搞定,具體的connect信息如下:

還有兩點:

①、一條游標只能執行一條SQL語句,如果需要執行多條,需要創建多條游標,切記!!!

②、SQL語句中有python默認值(比如index)時,給其加上反引號即可。。。

 

關於pymssql模塊的下載安裝以及基礎使用,內容如上,僅供參考。。。

 


免責聲明!

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



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