Ethan's Blog

记录和思考

Python 使用 pyodbc 连接 SQL Server 2008

使用 Python 连接 SQL Server 2008 主要有两种方式,一种是使用 pyodbc,另一种是使用 pymssql,微软官方示例和推荐都是使用 ODBC 的方式,即使用 pyodbc。本文记录 Python 使用 pyodbc 连接 SQL Server 2008 的简单过程。

Python 使用 pyodbc 连接 SQL Server 2008

1. 安装 pyodbc

使用 pip 命令安装 pyodbc:

pip install pyodbc

2. 安装微软 ODBC 驱动

如果是连接本机的数据库,这一步可以省略,因为对应数据库软件版本的 ODBC 驱动一般会随数据库软件一并安装。

如果本机没有安装数据库软件,而是需要连接远程的数据库,则需要安装 ODBC 驱动。点击此处 前往下载安装 ODBC 驱动。一般来说,安装最新版,最新版向下兼容可以连接其他版本数据库软件。

3. 连接数据库示例

以下简单代码为连接本地 SQL Server 2008 数据库获取数据示例:

import pyodbc

server = '.'
database = 'dbname'
username = 'sa'
password = 'sa'

cnxn = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

cursor = cnxn.cursor()

cursor.execute("SELECT top 10 * from table")
rows = cursor.fetchall()

for row in rows:
    print(row)

需要注意的是,如果使用不同版本的 ODBC 驱动,DRIVER={SQL Server Native Client 10.0} 中的字符串对应关系和其支持的数据库版本如下:

  • {SQL Server} - released with SQL Server 2000
  • {SQL Native Client} - released with SQL Server 2005 (also known as version 9.0)
  • {SQL Server Native Client 10.0} - released with SQL Server 2008
  • {SQL Server Native Client 11.0} - released with SQL Server 2012
  • {ODBC Driver 11 for SQL Server} - supports SQL Server 2005 through 2014
  • {ODBC Driver 13 for SQL Server} - supports SQL Server 2005 through 2016
  • {ODBC Driver 13.1 for SQL Server} - supports SQL Server 2008 through 2016
  • {ODBC Driver 17 for SQL Server} - supports SQL Server 2008 through 2019

4. 一个封装好的 pyodbc 类

待续…

相关文章: