📅  最后修改于: 2023-12-03 15:18:57.263000             🧑  作者: Mango
Python ODBC(Open Database Connectivity,开放数据库连通性)模块是用于在 Python 中连接数据库的一种标准方式,可以通过 ODBC 驱动程序与各种数据库进行交互,包括 Microsoft SQL Server、Oracle、MySQL、PostgreSQL 等。使用 Python ODBC 可以方便地执行 SQL 语句、查询数据、插入、更新、删除等操作。
在 Python 中使用 ODBC 模块需要先安装 pyodbc 模块,可以通过 pip 工具安装:
pip install pyodbc
使用 pyodbc 模块连接数据库需要先准备好 ODBC 数据源,例如连接 Microsoft SQL Server 数据库需要下载安装 Microsoft ODBC 驱动程序,然后在数据源管理器中添加一个数据源。
连接数据库的过程包括以下几个步骤:
import pyodbc
连接字符串包括连接数据库的驱动程序、连接的服务器、数据库名称等信息,例如连接 Microsoft SQL Server 的字符串可以如下设置:
connection_string = 'Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;'
使用 pyodbc 模块可以通过 connect() 方法建立与数据库的连接:
conn = pyodbc.connect(connection_string)
建立成功后,可以通过 conn.cursor() 方法获取游标:
cursor = conn.cursor()
通过游标执行 SQL 语句可以访问数据库的表格或执行其他操作:
cursor.execute('SELECT * FROM myTable')
执行完 SQL 语句后要及时关闭游标和连接以释放资源:
cursor.close()
conn.close()
使用 pyodbc 模块执行 SQL 语句时可以使用 execute() 方法,该方法支持参数化查询。例如查询 myTable 表格中 ID=1 的数据:
cursor.execute('SELECT * FROM myTable WHERE ID = ?', 1)
row = cursor.fetchone()
print(row)
向数据库中插入、更新或删除数据时可以使用 execute() 方法,需要在 SQL 语句中指定要操作的表格、字段和值等信息,例如,插入名字为 Bob、年龄为 20 的新数据:
cursor.execute('INSERT INTO myTable (name, age) VALUES (?, ?)', 'Bob', 20)
conn.commit() # 提交更改
更新 myTable 表格中 ID=1 的数据:
cursor.execute('UPDATE myTable SET age = 21 WHERE ID = ?', 1)
conn.commit() # 提交更改
删除 myTable 表格中 ID=1 的数据:
cursor.execute('DELETE FROM myTable WHERE ID = ?', 1)
conn.commit() # 提交更改
使用 Python ODBC 访问数据库时可能会出现一些错误,例如无法连接数据库、SQL 语句有误等。使用 try/except 语句可以捕获这些错误,例如:
try:
conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
cursor.execute('SELECT * FROM myTable')
row = cursor.fetchone()
print(row)
except pyodbc.Error as error:
print(f'Error: {error}')
finally:
cursor.close()
conn.close()