Python 查询 Access 数据库方法


发布日期 : 2021-05-30 15:14:49 UTC

访问量: 10 次浏览

Python 查询Access数据库

Python 查询Access数据库

在Python中,我们可以使用ODBC(Open Database Connectivity)模块来连接和查询Access数据库。
ODBC是一种标准的数据库访问方法,可以跨平台地访问各种类型的数据库。
在本文中,我们将详细介绍如何在Python中使用ODBC模块来查询Access数据库。

准备工作

在开始之前,我们需要进行一些准备工作。首先,确保你已经安装了Python,并且安装了 pyodbc 模块。
你可以使用以下命令来安装 pyodbc 模块:

pip install pyodbc

其次,我们需要安装适用于Access数据库的ODBC驱动程序。在Windows操作系统中,通常会自带Microsoft Access ODBC Driver。
如果没有安装,你可以在微软官网上下载并安装。

准备工作完成后,我们可以开始连接和查询Access数据库了。

连接Access数据库

首先,我们需要建立一个数据库连接。在这之前,你需要知道数据库的路径。
假设我们的数据库文件名为 mydatabase.accdb ,存放在 C:\Users\username\Documents 目录下。
我们可以使用以下代码来建立数据库连接:

import pyodbc

# 数据库文件的路径
db_path = r'C:\Users\username\Documents\mydatabase.accdb'

# 定义连接字符串
conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + db_path

# 建立数据库连接
conn = pyodbc.connect(conn_str)

# 创建游标
cursor = conn.cursor()

在以上代码中,我们首先导入 pyodbc 模块,然后指定数据库文件的路径和连接字符串。
最后,我们使用 connect() 方法建立数据库连接,并使用 cursor() 方法创建一个游标对象。

查询数据库

建立了数据库连接之后,我们就可以开始查询数据库了。
以下是一个简单的查询示例,查询表中的所有数据并打印出来:

# 执行查询
cursor.execute('SELECT * FROM mytable')

# 遍历结果集并输出
for row in cursor.fetchall():
    print(row)

在上面的代码中,我们使用 execute() 方法执行SQL查询语句,查询了名为 mytable 的表中的所有数据,并使用 fetchall() 方法获取查询结果。然后我们遍历查询结果,并打印出每一行的数据。

参数化查询

在实际应用中,为了避免SQL注入攻击,我们通常会使用参数化查询。
以下是一个参数化查询示例,查询指定姓名的数据:

# 准备参数
name = 'Alice'

# 执行参数化查询
cursor.execute('SELECT * FROM mytable WHERE name=?', (name,))

# 遍历结果集并输出
for row in cursor.fetchall():
    print(row)

在上面的示例中,我们使用 ? 作为占位符,并将参数传递给 execute() 方法的第二个参数中,这样可以确保参数值被正确地转义,防止SQL注入攻击的发生。

关闭连接

最后,在完成数据库操作后,我们需要关闭数据库连接,释放资源:

# 关闭游标和连接
cursor.close()
conn.close()

完整示例

下面是一个完整的示例,演示了如何连接和查询Access数据库:

import pyodbc

# 数据库文件的路径
db_path = r'C:\Users\username\Documents\mydatabase.accdb'

# 定义连接字符串
conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + db_path

# 建立数据库连接
conn = pyodbc.connect(conn_str)

# 创建游标
cursor = conn.cursor()

# 查询数据
cursor.execute('SELECT * FROM mytable')

# 遍历结果集并输出
for row in cursor.fetchall():
    print(row)

# 关闭游标和连接
cursor.close()
conn.close()

以上就是如何使用Python查询Access数据库的详细介绍。
通过ODBC模块,我们可以轻松地连接和操作Access数据库。