[파이썬] Psycopg2에서 Cursor의 iteration 및 loop

=================================================================================================

Psycopg2는 파이썬에서 PostgreSQL 데이터베이스와의 상호 작용을 위한 강력한 라이브러리입니다. 이 라이브러리를 사용하여 데이터베이스 쿼리를 실행하고 결과를 검색하는 것은 매우 쉽습니다. 이번 블로그 포스트에서는 Psycopg2Cursor 객체를 사용하여 데이터베이스 결과 집합을 반복하고 반복문(loop) 안에서 사용하는 방법에 대해 알아보겠습니다.


Cursor 객체를 사용하여 데이터베이스 쿼리를 실행하면 결과 집합을 가져오는 데 사용할 수 있는 반복 가능한(iterable) 객체가 반환됩니다. 이 객체를 이용하여 결과 집합을 순회(iteration)하고 개별 행(row)을 처리할 수 있습니다.

import psycopg2

# PostgreSQL 데이터베이스에 연결
conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")

# 커서 생성
cur = conn.cursor()

# 데이터베이스 쿼리 실행
cur.execute("SELECT * FROM mytable")

# 결과 가져오기 및 순회하기
for row in cur:
    # 각 행(row)에 대한 작업 수행
    print(row)

# 커서와 연결 종료
cur.close()
conn.close()

위의 예제에서는 Psycopg2를 사용하여 PostgreSQL 데이터베이스에 연결하고, Cursor 객체를 생성한 다음 데이터베이스 쿼리를 실행합니다. execute() 메서드를 사용하여 쿼리를 실행하면 Cursor 객체가 결과 집합을 가리키게 됩니다.

반복문(loop)을 이용하여 Cursor 객체를 순회(iteration)하면 개별 행(row)을 얻을 수 있습니다. 여기서는 각 행을 단순히 출력하는 예시로 작성되었습니다. 실제로는 행(row)의 데이터를 처리하는 코드를 작성하면 됩니다.

마지막으로 커서와 데이터베이스 연결을 종료하는 것이 중요합니다. close() 메서드를 사용해 커서와 연결을 닫아 리소스를 적절하게 해제해야 합니다.


위의 예제에서는 단순히 결과를 가져와서 출력하는 예시를 보여주었습니다. 하지만 데이터베이스 결과를 자신의 목적에 맞게 가공하고 처리하는 유연한 코드를 작성할 수도 있습니다. Cursor 객체를 이용하여 데이터베이스 결과를 반복하고, 각 행(row)의 값에 접근하여 원하는 로직을 구현할 수 있습니다.

Psycopg2Cursor 객체는 데이터베이스 결과를 순회하고 처리하는 데 유용한 기능을 제공합니다. 데이터베이스와의 상호 작용하는 파이썬 애플리케이션을 개발할 때 Cursor 객체의 반복(iteration) 및 반복문(loop) 활용을 고려해보세요.