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

Python에서 MySQL 테이블의 전체 데이터를 조회하는 방법

MySQL 테이블 구조 이해하기

MySQL의 테이블은 행(row)과 열(column)로 구성됩니다. 열은 데이터의 필드(속성)를 나타내고, 행은 실제 레코드(데이터)를 의미합니다. 저장된 데이터를 활용하려면 먼저 테이블에서 데이터를 가져와야 하며, 경우에 따라 테이블의 모든 데이터를 한 번에 조회해야 할 때도 있습니다.

테이블의 모든 행을 가져오려면 SELECT * 문을 사용하면 됩니다.

기본 문법

SELECT * FROM table_name

위 문법에서 *(별표)는 테이블의 모든 열과 행을 전부 가져오겠다는 의미입니다.

Python에서 MySQL 테이블의 전체 데이터를 조회하는 절차

  • mysql.connector 모듈을 임포트합니다.

  • connect() 메서드를 사용해 데이터베이스와 연결을 설정합니다.

  • cursor() 메서드로 커서 객체를 생성합니다.

  • 적절한 SQL 문으로 쿼리를 작성합니다.

  • execute() 메서드로 SQL 쿼리를 실행합니다.

  • 작업이 끝나면 연결을 종료합니다.

예를 들어 '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)
for row in cursor:
    print(row)

위 코드는 SELECT * 쿼리를 실행하여 테이블의 모든 행을 가져옵니다. 이후 for 반복문을 사용해 각 행을 순서대로 출력합니다.

실행 결과

('Karan', 4, 'Amritsar', 95)
('Sahil', 6, 'Amritsar', 93)
('Kriti', 3, 'Batala', 88)
('Khushi', 9, 'Delhi', 90)
('Kirat', 5, 'Delhi', 85)

참고: fetchall() 활용하기

for 반복문 대신 cursor.fetchall() 메서드를 사용하면 조회된 결과 전체를 한 번에 리스트 형태로 받아올 수 있어 처리가 더 간편할 수 있습니다. 또한 모든 작업을 마친 후에는 반드시 db.close()를 호출하여 데이터베이스 연결을 닫아주는 것이 좋습니다. 이는 불필요한 리소스 낭비를 맞고 연결 누수(connection leak)를 방지하는 기본적인 습관입니다.