Python使用pyodbc连接SQL Server:从配置到代码实现

半杯拿铁
半杯拿铁
发布时间:2026-10-15| 5人浏览过
原创

本文介绍如何在Python中通过pyodbc库连接SQL Server数据库。包含检查ODBC驱动、安装依赖包、编写数据库操作类以及执行测试的完整步骤。

了解pyodbc与核心对象

Pyodbc是一个Python包,它利用ODBC驱动程序来连接SQL Server数据库。在使用时主要涉及三个基本类型:

  • Connection:表示客户端与数据库的连接,用于提交事务。
  • Cursor:表示向数据库发送的查询请求。
  • Row:表示获取的结果集。

第一步:检查本地ODBC驱动版本

在编写代码前,必须确认系统中安装了与SQL Server版本匹配的ODBC驱动程序。不同版本的SQL Server可能对应不同版本的Driver(如11、12、13、19等)。

  1. 打开控制面板。
  2. 依次进入:管理工具 → 数据源(ODBC)。

以图中为例,当前电脑安装的版本为 ODBC Driver 11 for SQL Server。请在“驱动程序”选项卡中查看你实际安装的名称,后续代码中将用到此名称。

第二步:安装pyodbc包

使用PowerShell或命令行终端,运行以下命令安装pyodbc:

pip install pyodbc

安装完成后,可通过运行 pip list 查看是否已成功列出该包。

第三步:构建数据库操作类 (DBHelp_SqlServer.py)

为了方便调用,建议将连接逻辑封装为一个类。该类负责初始化连接参数、获取游标以及提供查询和执行方法。请将以下代码保存为 DBHelp_SqlServer.py。

注意:代码中的 Driver={...} 部分需替换为你第一步中查到的实际驱动名称。

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

第四步:创建测试脚本 (testConn.py)

在同一目录下创建 testConn.py 文件,用于测试连接及增删改查功能。请根据你的实际环境修改 MSSQL 类的初始化参数(IP、用户名、密码、数据库名)。

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

完成判断与注意事项

运行 testConn.py 后,若控制台输出了插入和查询的结果数据,且未报错,即代表连接成功。相比其他库(如pymssql),pyodbc在处理中文字符时通常表现更稳定,较少出现乱码问题。

以上就是Python使用pyodbc连接SQL Server的详细内容,更多关于Python连接数据库的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。