✅ 개념
- 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 |