python使用pyodbc连接sqlserver

 更新时间:2023年02月08日 09:08:27   作者:罗汉松驻扎的工作基地  
本文主要介绍了python使用pyodbc连接sqlserver,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

(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)

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的结果了。

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

到此这篇关于python使用pyodbc连接sqlserver 的文章就介绍到这了,更多相关python 连接sqlserver 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python IO文件管理的具体使用

    Python IO文件管理的具体使用

    我们可以使用python来操作文件,比如读取文件内容、写入新的内容等,本文主要介绍了Python IO文件管理的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)

    使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)

    我们在使用新浪微博API时,有时需要得到一个微博的url,但是如statuses/public_timeline等接口中取得的微博status的字段中并没有包含
    2014-04-04
  • 基于打开pycharm有带图片md文件卡死问题的解决

    基于打开pycharm有带图片md文件卡死问题的解决

    这篇文章主要介绍了基于打开pycharm有带图片md文件卡死问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python+folium绘制精美地图的示例详解

    Python+folium绘制精美地图的示例详解

    folium是一个基于leaflet.js的python地图库,可以通过folium来操纵数据,并将其可视化。本文将通过各种示例详细讲解如何利用folium绘制精美地图,需要的可以参考一下
    2022-03-03
  • python使用7z解压apk包的方法

    python使用7z解压apk包的方法

    这篇文章主要介绍了python使用7z解压apk包的方法,涉及Python的shell命令调用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Python代码解决RenderView窗口not found问题

    Python代码解决RenderView窗口not found问题

    这篇文章主要介绍了Python代码解决RenderView窗口not found问题,需要的朋友可以参考下
    2016-08-08
  • 复制粘贴功能的Python程序

    复制粘贴功能的Python程序

    接下来,由于我觉得手动复制粘贴这29000条插入语句实在是太痛苦了,所以打算用Python来完成这项工作。这是我第一次自己动手写Python代码,感觉还挺顺利的。
    2008-04-04
  • Python版名片管理系统

    Python版名片管理系统

    这篇文章主要为大家详细介绍了Python版名片管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Python2.x版本中maketrans()方法的使用介绍

    Python2.x版本中maketrans()方法的使用介绍

    这篇文章主要介绍了Python2.x版本中maketrans()方法的使用介绍,是Python学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python数据分析之使用scikit-learn构建模型

    Python数据分析之使用scikit-learn构建模型

    这篇文章主要介绍了Python数据分析之使用scikit-learn构建模型,sklearn提供了model_selection模型选择模块、preprocessing数据预处理模块、decompisition特征分解模块,更多相关内容需要朋友可以参考下面文章内容
    2022-08-08

最新评论