python使用pyodbc連接sqlserver
用python操作ms sqlserver,有好幾種方法:
(1)利用pymssql (2)利用pyodbc
這里講import pyodbc來操作sql server database。
pyodbc是Python包,使用ODBC驅(qū)動器來連接SQL Server數(shù)據(jù)庫,其中pyodbc的基本類型是Connection,Cursor、Row
其中,Connection表示客戶端和數(shù)據(jù)庫的連接,并用于提交事務(wù);
Cursor表示向數(shù)據(jù)庫發(fā)送的查詢請求;
Row表示獲取的結(jié)果集。
首先查看自己電腦有沒有安裝sql server對應(yīng)的odbc,在控制面板中可以查:
控制面板-->管理工具-->數(shù)據(jù)源(ODBC)
我電腦的版本是 ODBC Driver 11 for SQL Server
不同電腦安裝了不同的sql server版本,可能driver不同,有可能是12、13、19等等版本。
然后利用powershell下載安裝pyodbc包,如圖輸入
pip install pyodbc
下載成功之后,輸入看看有沒有成功安裝package
pip list
成功安裝package之后,就可以開始編輯python代碼了。
代碼如下(兩個文件DBHelp_SqlServer.py 和 testConn.py):
文件1(DBHelp_SqlServer.py)
import pyodbc class MSSQL: def __init__(self, IP, UserID, Pwd, db): self.host=IP; self.user=UserID; self.password=Pwd; self.dbname=db; def __getConnect(self): if not self.dbname: raise(NameError,"db name undefine error") else: connSTR="Driver={ODBC Driver 11 for SQL Server};SERVER=%s,1433;DATABASE=%s;UID=%s;PWD=%s" % (self.host, self.dbname, self.user, self.password) ##example: Driver={ODBC Driver 11 for SQL Server};SERVER=127.0.0.1,1433;DATABASE=MyTestDB;UID=sa;PWD=Abc123 self.conn = pyodbc.connect(connSTR); cu= self.conn.cursor(); if not cu: raise(NameError,"db connect error"); else: return cu; def ExecuteTableQuery(self,selectSql): cuu = self.__getConnect(); selectRows = cuu.execute(selectSql); resList=selectRows.fetchall(); self.conn.close(); return resList; def ExecuteNonQuery(self,sql): cuu = self.__getConnect(); cuu.execute(sql); self.conn.commit(); self.conn.close(); def PrintODBCDrivers(self): print(pyodbc.drivers() );
文件2(testConn.py)
import DBHelp_SqlServer db=DBHelp_SqlServer.MSSQL(IP="127.0.0.1", UserID="sa", Pwd="Abc123", db="MyTestDB"); sqlinsert="insert into TeacherTable(TName,TClass) values('呂老師','三年級')" db.ExecuteNonQuery(sql=sqlinsert); sql1="select * from TeacherTable"; datatable = db.ExecuteTableQuery(selectSql=sql1); print(datatable);
運(yùn)行之后就能看到insert sql和select sql的結(jié)果了。
備注:如果使用pymssql,可能會出現(xiàn)中文亂碼的問題,我搞不懂怎么解決。而使用pyodbc就沒出現(xiàn)亂碼。哪個簡單用哪個。
到此這篇關(guān)于python使用pyodbc連接sqlserver 的文章就介紹到這了,更多相關(guān)python 連接sqlserver 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python創(chuàng)建對稱矩陣的方法示例【基于numpy模塊】
這篇文章主要介紹了Python創(chuàng)建對稱矩陣的方法,結(jié)合實(shí)例形式分析了Python基于numpy模塊實(shí)現(xiàn)矩陣運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下2017-10-10python 正則表達(dá)式參數(shù)替換實(shí)例詳解
這篇文章主要介紹了python 正則表達(dá)式參數(shù)替換,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01淺談Python數(shù)據(jù)類型之間的轉(zhuǎn)換
下面小編就為大家?guī)硪黄獪\談Python數(shù)據(jù)類型之間的轉(zhuǎn)換。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06使用python將時(shí)間轉(zhuǎn)換為指定的格式方法
今天小編就為大家分享一篇使用python將時(shí)間轉(zhuǎn)換為指定的格式方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11對Python 簡單串口收發(fā)GUI界面的實(shí)例詳解
今天小編就為大家分享一篇對Python 簡單串口收發(fā)GUI界面的實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python 類,property屬性(簡化屬性的操作),@property,property()用法示例
這篇文章主要介紹了Python 類,property屬性(簡化屬性的操作),@property,property()用法,結(jié)合實(shí)例形式分析了Python類的定義、屬性、方法及相關(guān)使用技巧,需要的朋友可以參考下2019-10-10詳解python3類型注釋annotations實(shí)用案例
這篇文章主要介紹了詳解python3類型注釋annotations實(shí)用案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01