파이썬의 fetchall()

Rana Hasnain Khan 2024년2월15일
파이썬의 fetchall()

Python의 cursor 클래스 메소드 fetchall()과 Python의 데이터베이스에서 데이터를 검색하는 응용 프로그램에서 이를 사용하는 방법을 보여줍니다.

fetchall()을 사용하여 Python의 데이터베이스에서 데이터 검색

대부분의 경우 우리는 애플리케이션에서 데이터베이스를 사용합니다. 데이터베이스는 데이터를 저장하는 애플리케이션의 가장 중요한 부분입니다.

Python은 커서를 사용하여 데이터베이스에서 데이터를 검색합니다. fetchall()은 특정 쿼리에 대한 모든 행을 검색하는 데 사용되는 Python의 cursor 메서드 중 하나입니다.

특정 테이블의 모든 데이터를 표시하려면 fetchall() 메서드를 사용하여 모든 행을 가져올 수 있습니다. 이 메서드는 튜플 목록을 반환합니다.

쿼리에 행이 없으면 빈 목록이 반환됩니다. 예제를 살펴보고 예제 테이블을 만들고 Python의 cursor 메서드를 사용하여 데이터를 가져오도록 합시다.

이 예에서는 MySQL 데이터베이스를 사용하므로 mysql-connector-python 모듈을 설치해야 합니다. 그러나 PostgreSQL과 같은 다른 데이터베이스로 작업하려면 Psycopg2를 사용해야 하고, SQLite에서 작업하는 경우 sqlite3을 사용해야 합니다.

따라서 다음 명령을 실행하여 mysql-connector-python을 설치합니다.

pip install mysql-connector-python

MySQL 내부에 새로운 예제 데이터베이스와 테이블을 생성해 보겠습니다.

파이썬 데이터베이스 이름의 fetchall

우리의 테이블 구조는 아래와 같을 것입니다.

파이썬 데이터베이스 스크린샷의 fetchall

파이썬 테이블 구조의 fetchall

이제 아래와 같이 내부에 데모 데이터를 추가해 보겠습니다.

파이썬 테이블 데이터의 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()

출력:

파이썬 예제 결과의 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

관련 문장 - Python MySQL