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