📜  python odbc 访问数据库 - Python (1)

📅  最后修改于: 2023-12-03 15:18:57.263000             🧑  作者: Mango

Python ODBC 访问数据库

简介

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 驱动程序,然后在数据源管理器中添加一个数据源。

连接数据库的过程包括以下几个步骤:

  1. 导入 pyodbc 模块
import pyodbc
  1. 设置连接字符串

连接字符串包括连接数据库的驱动程序、连接的服务器、数据库名称等信息,例如连接 Microsoft SQL Server 的字符串可以如下设置:

connection_string = 'Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;'
  1. 建立连接

使用 pyodbc 模块可以通过 connect() 方法建立与数据库的连接:

conn = pyodbc.connect(connection_string)
  1. 获取游标

建立成功后,可以通过 conn.cursor() 方法获取游标:

cursor = conn.cursor()
  1. 执行 SQL 语句

通过游标执行 SQL 语句可以访问数据库的表格或执行其他操作:

cursor.execute('SELECT * FROM myTable')
  1. 关闭游标和连接

执行完 SQL 语句后要及时关闭游标和连接以释放资源:

cursor.close()
conn.close()
执行 SQL 语句

使用 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()
参考资料