파이썬과 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'])
import seaborn as sns
sns.scatterplot(data=df, x="id", y="email")
여기까지 아주 간단하게 파이썬에서 MySQL을 연동하여 DB 데이터를 끌어오는 방법에 대해서 알아보았습니다. 시각화에 대한 더 상세한 설명이 필요하신 분은 아래 포스팅들을 참고하세요. 코드까지 깃허브에 모두 공유해 놓았습니다 :)
파이썬 시각화 노하우가 궁금하다면?
'데이터분석 > SQL' 카테고리의 다른 글
[해커랭크] SQL 심화 응용 팁들 (1) | 2024.09.24 |
---|---|
MySQL 다운로드 및 설치하는 방법 (1) | 2024.03.10 |
[BigQuery] 신규사용자가 첫 접속날짜에 남긴 이벤트만 필터링 (0) | 2024.02.25 |
[BigQuery] event_date 날짜 형식 변경 방법 (0) | 2024.02.25 |
MySQL 내장 함수 53가지 정리 (숫자, 문자, 날짜, 논리, 집계) (0) | 2023.11.23 |
댓글