python连接sql server数据库(pyodbc)

用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

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就没出现乱码。哪个简单用哪个。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是使用Python连接SQL Server数据库的步骤: 1. 安装pyodbc模块 在Python连接SQL Server需要使用模块pyodbc,因此需要先安装该模块,使用命令`pip install pyodbc`。 2. 导入pyodbc模块 安装完成后,在Python中导入pyodbc模块,使用`import pyodbc`。 3. 连接SQL Server数据库 使用pyodbc的`connect`方法连接SQL Server数据库。需要提供数据库连接字符串,格式为: ``` DRIVER={SQL Server};SERVER=server_name;DATABASE=database_name;UID=username;PWD=password ``` 其中,server_name、database_name、username、password需要根据实际情况进行替换。 示例代码: ```python import pyodbc # 连接数据库 conn_str = 'DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=sa;PWD=password' conn = pyodbc.connect(conn_str) # 创建游标对象 cursor = conn.cursor() # 查询数据 cursor.execute('SELECT * FROM user') # 打印查询结果 for row in cursor: print(row) # 关闭游标和数据库连接 cursor.close() conn.close() ``` 以上代码连接了本地服务器上的testdb数据库,并查询了其中一个叫做user的表的所有数据。每一行数据是一个元组,其中包含各个字段的值。 注意事项: - 在连接字符串中,需要将数据库名、用户名、密码等敏感信息替换成实际的内容; - 如果SQL Server数据库使用了Windows身份验证,可以省略`UID`和`PWD`两个参数,将其设置为空字符串,然后在连接字符串中添加`Trusted_Connection=yes`。 参考文档: - [pyodbc](https://github.com/mkleehammer/pyodbc/wiki)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值