Python 2.7 中的 MSSQL

41 投票
4 回答
91423 浏览
提问于 2025-04-17 01:33

有没有可以让MSSQL和Python 2.7连接的模块呢?

我下载了pymssql,但它只适用于Python 2.6。有没有适合Python 2.7的类似模块呢?

如果有人知道,请提供链接,谢谢!


重要提示:现在有一个适用于Python 2.7的pymssql模块。别忘了查看这个页面底部的答案:https://stackoverflow.com/a/25749269/362951

4 个回答

5

使用pip安装pyodbc,可以这样做:pip install pyodbc

import pyodbc
cnxn = pyodbc.connect("DRIVER={SQL Server};SERVER=SOME-PC;DATABASE=my_db")
cursor = cnxn.cursor()


cursor.execute("insert into test_tb values(6, 'name')")

cursor.execute("select id, name from my_tb")
rows = cursor.fetchall()
for row in rows:
    print row.id, row.name

想了解更多细节,可以查看这里:

https://github.com/mkleehammer/pyodbc/wiki

17

如果你是通过网络搜索看到这个问题的,注意现在的 pymssql 确实支持 Python 2.7(还有 3.3)及更新的版本。你不需要使用 ODBC 了。

根据 pymssql 的要求:

Python 2.x: 需要 2.6 或更新的版本。Python 3.x: 需要 3.3 或更新的版本。

可以查看 http://pymssql.org/

58

你也可以使用 pyodbc 从 Python 连接到 MSSQL 数据库。

这里有一个来自文档的 示例

import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass')
cursor = cnxn.cursor()
cursor.execute("select user_id, user_name from users")
rows = cursor.fetchall()
for row in rows:
    print row.user_id, row.user_name

还有一个库叫 SQLAlchemy(在其他回答中提到过),它使用 pyodbc 来连接 MSSQL 数据库(它会尝试各种库,但 pyodbc 是最常用的)。下面是使用 sqlalchemy 的示例代码:

from sqlalchemy import create_engine
engine = create_engine("mssql://me:pass@localhost/testdb")
for row in engine.execute("select user_id, user_name from users"):
    print row.user_id, row.user_name

撰写回答