用python操作ms?sql?server,有好幾種方法:
(1)利用pymssql (2)利用pyodbc
這里講import?pyodbc來操作sql?server?database。
pyodbc是Python包,使用ODBC驅(qū)動器來連接SQL Server數(shù)據(jù)庫,其中pyodbc的基本類型是Connection,Cursor、Row
其中,Connection表示客戶端和數(shù)據(jù)庫的連接,并用于提交事務;
Cursor表示向數(shù)據(jù)庫發(fā)送的查詢請求;
Row表示獲取的結(jié)果集。
首先查看自己電腦有沒有安裝sql?server對應的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);
運行之后就能看到insert?sql和select?sql的結(jié)果了。文章來源:http://www.zghlxwxcb.cn/news/detail-427142.html
備注:如果使用pymssql,可能會出現(xiàn)中文亂碼的問題,我搞不懂怎么解決。而使用pyodbc就沒出現(xiàn)亂碼。哪個簡單用哪個。文章來源地址http://www.zghlxwxcb.cn/news/detail-427142.html
到了這里,關于python連接sql?server數(shù)據(jù)庫(pyodbc)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!