본문 바로가기
데이터분석/SQL

파이썬에서 MySQL 쿼리로 DB 데이터 끌어오는 방법

by 코듀킹 2023. 12. 17.

파이썬과 MySQL을 연동하여 DB 데이터를 끌어오는 방법에 대해서 간단하게 알아보겠습니다. 꼭 필요한 코드만 담았습니다. 또한, 끌어온 데이터로 시각화하는 방법까지 공유드리겠습니다 :)

 

 

파이썬에 MySQL 연동하는 전체 코드

import pymysql

plt.rcParams['font.family'] = 'Malgun Gothic'

conn = pymysql.connect(host='localhost', user='root', password='0000', db='main_db', charset='utf8')
cursor = conn.cursor()

sql = """
select * 
from user 
limit 5
"""

cursor.excute(sql)
data = cursor.fetchall()

conn.close()

코드 설명

1. import pymysql: 이 모듈은 Python과 MySQL 간의 상호 작용을 도와주는 라이브러리입니다.
2. plt.rcParams['font.family'] = 'Malgun Gothic': Matplotlib의 폰트를 'Malgun Gothic'으로 설정합니다. 그래프를 그릴 때 한글 폰트를 지정하는 용도입니다. 이 코드를 설정하지 않으면 그래프에 한글이 깨지기 때문에 설정해줘야합니다.
3. conn = pymysql.connect(host='localhost', user='root', password='0000', db='main_db', charset='utf8'): MySQL 데이터베이스에 연결합니다. 호스트, 사용자 이름, 비밀번호, 데이터베이스 이름 및 문자 인코딩을 지정합니다.
4. cursor = conn.cursor(): 커서를 생성합니다. 커서는 SQL 쿼리를 실행하고 결과를 처리하는 데 사용됩니다.
5. sql = """select * from user limit 5""": 실행할 SQL 쿼리를 정의합니다. 이 경우, "user" 테이블에서 처음 다섯 개의 행을 선택합니다.
6. cursor.execute(sql): SQL 쿼리를 실행합니다.
7. data = cursor.fetchall(): 실행된 쿼리의 결과를 모두 가져와서 변수 data에 저장합니다. 이는 튜플의 리스트 형태로 반환됩니다.
8. conn.close(): 데이터베이스 연결을 닫습니다.


DB에서 끌어온 데이터로 파이썬에서 시각화하는 방법

만약 'user' 테이블이 아래와 같은 형태라면, data를 출력했을 때, 어떤 데이터가 출력될까요?

+----+----------+--------+
| id | username | email  |
+----+----------+--------+
| 1  | user1    | email1 |
| 2  | user2    | email2 |
| 3  | user3    | email3 |
| 4  | user4    | email4 |
| 5  | user5    | email5 |
+----+----------+--------+

 

data는 아래와 같이 튜플 형태로 데이터가 저장됩니다.

[(1, 'user1', 'email1'), (2, 'user2', 'email2'), (3, 'user3', 'email3'), 
(4, 'user4', 'email4'), (5, 'user5', 'email5')]

 

이 data를 통해서 시각화 작업을 한다고 하면, 아래와 같이 데이터 프레임 형태로 만들어서 seaborn 라이브러리를 사용해 쉽게 시각화 작업을 할 수 있습니다.

import pandas as pd
df = pd.DataFrame(data, columns=['id', 'name', 'email'])

튜플-데이터-데이터프레임-형태로-변환
df 출력결과

import seaborn as sns
sns.scatterplot(data=df, x="id", y="email")

 

데이터프레임-seaborn으로-시각화

 

 

여기까지 아주 간단하게 파이썬에서 MySQL을 연동하여 DB 데이터를 끌어오는 방법에 대해서 알아보았습니다. 시각화에 대한 더 상세한 설명이 필요하신 분은 아래 포스팅들을 참고하세요. 코드까지 깃허브에 모두 공유해 놓았습니다 :)

 

 

파이썬 시각화 노하우가 궁금하다면?

댓글