본문 바로가기
개발/Python

DB > fetchmany, fetchone, fetchall

by shining park 2025. 4. 27.
 개념
  • fetchone(), fetchmany(size), fetchall()
  • Python에서 DB 쿼리 결과를 가져오는 방식
  • 각각 가져오는 DB의 양과 용도가 다름

 

 차이점

 

메서드 설명 반환값 주 용도
fetchone() 결과에서 한 줄(row)만 가져옴 단일 튜플 or None 한 줄만 필요한 경우
fetchmany(size) 결과에서 지정한 개수만큼 줄 가져옴 튜플의 리스트 데이터 양이 많을 때 적당히 나눠서 가져올 때
fetchall() 남아있는 모든 줄(row)을 한번에 가져옴 튜플의 리스트 결과가 적을 때, 전부 가져올 때

 

📍예시 코드

import mysql.connector

conn = mysql.connector.connect(**config)
cursor = conn.cursor()

cursor.execute("SELECT * FROM tbl_menu")

# 1. fetchone: 한 줄씩 가져옴
row = cursor.fetchone()
print('fetchone:', row)  # (1, '치킨', 12000)

# 2. fetchmany: 원하는 개수만큼 줄을 가져옴
rows = cursor.fetchmany(2)
print('fetchmany(2):', rows)  # [(2, '피자', 15000), (3, '햄버거', 8000)]

# 3. fetchall: 남은 전체 줄을 다 가져옴
all_rows = cursor.fetchall()
print('fetchall:', all_rows)  # [(4, '떡볶이', 6000), (5, '순대', 5000)]

 

 

⚠️ 주의점

  • fetch계열 메서드는 커서 위치 기준으로 작동함.
  • 즉, fetchone()을 먼저 하면 해당 그 줄은 건너뛰고, fetchall()은 남은 줄만 가져오게 됨.
  • fetchall() 사용 시, 너무 많으면 메모리 터질 수 있음

'개발 > Python' 카테고리의 다른 글

Python > Meachine Learning > cross_val_score, cross_validate  (0) 2025.06.03
Scikit-Learn > fit(), transform()  (0) 2025.05.10
🪄매직 메소드 __xxx__  (0) 2025.04.17
🦭바다코끼리 연산자  (0) 2025.04.13
string to boolean 형변환  (1) 2025.04.09