Python 中的 fetchall()

Rana Hasnain Khan 2024年2月15日
Python 中的 fetchall()

我们将演示 Python 的 cursor 类方法 fetchall() 以及如何在应用程序中使用它从 Python 的数据库中检索数据。

在 Python 中使用 fetchall() 从数据库中检索数据

大多数时候,我们在应用程序中使用数据库。数据库是我们存储数据的应用程序中最重要的部分。

Python 使用 cursor 从数据库中检索数据。fetchall() 是 Python 的 cursor 方法之一,用于检索某个查询的所有行。

当我们想要显示某个表中的所有数据时,我们可以使用 fetchall() 方法来获取所有行。此方法返回一个元组列表。

如果查询没有行,它将返回一个空列表。让我们通过一个示例,创建一个示例表,并尝试使用 Python 的 cursor 方法获取数据。

对于这个例子,我们将使用 MySQL 数据库,所以我们必须安装 mysql-connector-python 模块。但是如果你想使用其他数据库,比如 PostgreSQL,你需要使用 Psycopg2,或者如果你使用 SQLite,你需要使用 sqlite3

所以我们将通过运行以下命令来安装 mysql-connector-python

pip install mysql-connector-python

让我们在 MySQL 中创建一个新的示例数据库和一个表。

python 数据库名称中的 fetchall

我们的表结构将如下所示。

python 数据库中的 fetchall 截图

python 表结构中的 fetchall

现在,让我们在其中添加一些演示数据,如下所示。

python 表数据中的 fetchall

我们将导入 mysql-connector-python 并在 Python 中的函数内创建数据库连接,如下所示。

# python
import mysql.connector


def getRecords():
    try:
        mydb = mysql.connector.connect(
            host="localhost",
            user="yourusername",
            password="yourpassword"
        )
        mycursor = mydb.cursor()
        print("Connected to MySQL")

我们将创建一个 select 查询来从我们的表中获取数据。

# python
query = "SELECT * FROM test"
mydb.commit()
records = mycursor.fetchall()
print("Total rows are:  ", len(records))
print("Printing each row")
for row in records:
    print("ID: ", row[0])
    print("Name: ", row[1])
    print("Email: ", row[2])
    print("Country: ", row[3])
    print("\n")
mycursor.close()

最后,我们将调用我们的函数。

# python
getRecords()

输出:

python 示例结果中的 fetchall

上面的结果表明,使用 fetchall() 方法可以轻松地从查询中获取所有行。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn