Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python MySQL fetchone() 메서드 완벽 가이드: 테이블의 첫 번째 행만 조회하는 방법

fetchone() 메서드란?

fetchone() 메서드는 MySQL 테이블에서 첫 번째 행(row) 하나만 가져오고 싶을 때 사용하는 메서드입니다. 이 메서드는 쿼리 결과 중 맨 앞에 있는 단 한 개의 행만 반환하며, 더 이상 남은 행이 없으면 None을 반환합니다.

fetchone() 메서드의 동작 원리

fetchone()은 커서 객체에 직접 실행되는 쿼리가 아니라는 점에 유의해야 합니다. 실제로 데이터베이스에 전달되는 쿼리는 모든 행을 가져오는 SELECT *입니다. 그 후, SELECT * 쿼리가 반환한 결과 집합(result set)에 대해 fetchone() 메서드를 호출하면, 해당 결과에서 첫 번째 행만 추출하여 반환합니다.

MySQL에서 첫 번째 행을 가져오는 절차

Python에서 MySQL 테이블의 첫 번째 행을 조회하려면 다음 순서대로 진행합니다.

  • mysql.connector 모듈을 임포트한다
  • connect() 메서드를 사용해 데이터베이스와 연결을 설정한다
  • cursor() 메서드로 커서 객체를 생성한다
  • SELECT * 문을 사용해 쿼리를 작성한다
  • execute() 메서드로 SQL 쿼리를 실행한다
  • SELECT * 쿼리가 반환한 결과에 대해 fetchone() 메서드를 호출한다
  • 작업이 끝나면 연결을 닫는다

예시 테이블

예를 들어, 'MyTable'이라는 이름의 테이블이 있고 여기서 첫 번째 행만 가져오고 싶다고 가정해 보겠습니다.

+----------+---------+-----------+------------+
|   Name   |  Class  |    City   |   Marks    |
+----------+---------+-----------+------------+
|   Karan  |    4    | Amritsar  |     95     |
|   Sahil  |    6    | Amritsar  |     93     |
|   Kriti  |    3    | Batala    |     88     |
|  Khushi  |    9    | Delhi     |     90     |
|   Kirat  |    5    | Delhi     |     85     |
+----------+---------+-----------+------------+

코드 예제

import mysql.connector

db = mysql.connector.connect(host="your host", user="your username", password="your password", database="database_name")
cursor = db.cursor()

query = "SELECT * FROM MyTable"
cursor.execute(query)

# 커서 객체에는 쿼리가 반환한 모든 행이 들어 있음
# fetchone() 메서드로 첫 번째 행만 가져옴
first_row = cursor.fetchone()
print(first_row)

위 코드는 테이블에서 첫 번째 행을 가져와 출력합니다. 참고로 실무에서는 작업 종료 후 db.close()를 호출해 연결을 명시적으로 닫아주는 것이 좋습니다.

실행 결과

('Karan', 4, 'Amritsar', 95)

출력 결과를 보면 테이블의 다섯 개 행 중 첫 번째 행인 Karan의 데이터만 튜플(tuple) 형태로 반환된 것을 확인할 수 있습니다. 만약 나머지 행들도 순서대로 가져오고 싶다면 fetchall() 또는 fetchmany(n) 메서드를 사용하면 됩니다.