1. 라이브러리 설치
!pip install pymysql
# 암호화 모듈을 설치한 후 런타임을 재시작합니다.(아나콘다의 경우 설치 불필요)
# !pip install cryptography
2. 라이브러리 불러오기
import pymysql
import pandas as pd
from sqlalchemy import create_engine
3. mysql 연결
user = 'root'
password = 'aivle'
host = '127.0.0.1'
database = 'myshop2024'
connect_string = f'mysql+pymysql://{user}:{password}@{host}/{database}'
mysql = create_engine(connect_string)
비밀번호에 @이 들어갈 경우
from urllib.parse import quote_plus
password = quote_plus(password)
4. 데이터 읽어오기
# 쿼리문
sql = """
SELECT customer_name, customer_id, IF(gender='M', '남자', '여자') AS gender,
phone, city, register_date, point
FROM customer
WHERE point >=500000
ORDER BY customer_name ASC
"""
# 데이터프레임 만들기
data = pd.read_sql(sql, con=mysql)
# 확인
data.head()
#집계 결과 가져오기
# 쿼리문
sql = """
SELECT city AS 지역,
SUM(point) AS 포인트합,
GROUP_CONCAT(customer_name ORDER BY customer_name ASC) AS 고객명
FROM customer
WHERE YEAR(register_date) = 2021 AND point > 0
GROUP BY city
ORDER BY 포인트합 DESC
"""
# 데이터프레임 만들기
data = pd.read_sql(sql, con=mysql)
# 확인
data.head(10)
5. 그래프 그리기
import matplotlib.pyplot as plt
plt.plot(data['point'])
plt.show()
오류나면 다음 코드
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
6. 뷰로 받기
CREATE VIEW 고객정보 AS
SELECT city AS 지역,
SUM(point) AS 포인트합,
GROUP_CONCAT(customer_name ORDER BY customer_name ASC) AS 고객명
FROM customer
WHERE YEAR(register_date) = 2021 AND point > 0
GROUP BY city
ORDER BY 포인트합 DESC
sql = "SELECT * FROM 고객정보"
# 데이터프레임 만들기
data = pd.read_sql(sql, con=mysql)
# 확인
data.head(10)
'KT AIVLE School > SQL' 카테고리의 다른 글
MySQL로 SQL문 공부하기 (0) | 2024.12.03 |
---|