当前位置:   article > 正文

python连接sql server数据库(pyodbc)_python连接sql server数据库

python连接sql server数据库

用python操作ms sql server,有好几种方法:

(1)利用pymssql (2)利用pyodbc

这里讲import pyodbc来操作sql server database。

pyodbc是Python包,使用ODBC驱动器来连接SQL Server数据库,其中pyodbc的基本类型是Connection,Cursor、Row

其中,Connection表示客户端和数据库的连接,并用于提交事务;

Cursor表示向数据库发送的查询请求;

Row表示获取的结果集。

首先查看自己电脑有没有安装sql server对应的odbc,在控制面板中可以查:

控制面板-->管理工具-->数据源(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

  1. import pyodbc
  2. class MSSQL:
  3. def __init__(self, IP, UserID, Pwd, db):
  4. self.host=IP;
  5. self.user=UserID;
  6. self.password=Pwd;
  7. self.dbname=db;
  8. def __getConnect(self):
  9. if not self.dbname:
  10. raise(NameError,"db name undefine error")
  11. else:
  12. 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)
  13. ##example: Driver={ODBC Driver 11 for SQL Server};SERVER=127.0.0.1,1433;DATABASE=MyTestDB;UID=sa;PWD=Abc123
  14. self.conn = pyodbc.connect(connSTR);
  15. cu= self.conn.cursor();
  16. if not cu:
  17. raise(NameError,"db connect error");
  18. else:
  19. return cu;
  20. def ExecuteTableQuery(self,selectSql):
  21. cuu = self.__getConnect();
  22. selectRows = cuu.execute(selectSql);
  23. resList=selectRows.fetchall();
  24. self.conn.close();
  25. return resList;
  26. def ExecuteNonQuery(self,sql):
  27. cuu = self.__getConnect();
  28. cuu.execute(sql);
  29. self.conn.commit();
  30. self.conn.close();
  31. def PrintODBCDrivers(self):
  32. print(pyodbc.drivers() );

文件2(testConn.py

  1. import DBHelp_SqlServer
  2. db=DBHelp_SqlServer.MSSQL(IP="127.0.0.1", UserID="sa", Pwd="Abc123", db="MyTestDB");
  3. sqlinsert="insert into TeacherTable(TName,TClass) values('吕老师','三年级')"
  4. db.ExecuteNonQuery(sql=sqlinsert);
  5. sql1="select * from TeacherTable";
  6. datatable = db.ExecuteTableQuery(selectSql=sql1);
  7. print(datatable);

运行之后就能看到insert sql和select sql的结果了。

备注:如果使用pymssql,可能会出现中文乱码的问题,我搞不懂怎么解决。而使用pyodbc就没出现乱码。哪个简单用哪个。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/65700
推荐阅读
相关标签
  

闽ICP备14008679号