1. DB에 데이터를 삽입하는 방법
1) Python
# 필요 모듈 설치
import mysql.connector
import pandas as pd
from tqdm import tqdm
# mysql - DB에 연결
conn = mysql.connector.connect(
host = "",
user = "",
password = "",
database = ""
)
# csv파일 데이터프레임으로
df = pd.read_csv("./data.csv", encoding='euc-kr') # 한글 포함되어 있다면 'euc-kr'
# 테이블 생성 및 데이터 전처리 과정 생략
# cursor
cursor = conn.cursor(buffered=True) # buffered=True 는 쿼리 결과를 반복해서 사용할 필요가 있을 때 유용
sql = "INSERET INTO table VALUES (%s, %s, %s, ...)" # %s는 삽입이 필요한 컬럼 수만큼
# 반복문
for i, row in tqdm(df.iterrows(), total=df.shape[0]): # total 옵션은 tqdm에 전체 반복 수 입력
cursor.execute(sql, tuple(row))
conn.commit() # 한 줄씩 commit 할 때
# 연결 종료
conn.close()
2) DBeaver
1) Database Navigator > Databases > DB 우클릭 > 데이터 가져오기
2) CSV에서 가져오기 > 다음 > CSV 파일 선택 > 열기
3) 옵션 변경 (예) 인코딩, 컬럼 최소 길이 > 다음
4) Tables mapping 다음 > Data load settings 다음 > Confirm 진행 (기능 활용 시 업데이트)
2. Python에서 DB 내 데이터를 불러오는 방법 (데이터프레임 형태로)
import mysql.connector
import pandas as pd
conn = mysql.connector.connect(
host = "",
user = "",
password = "",
database = ""
)
cursor = conn.cursor(buffered=True)
def fetch_to_dataframe(cursor, table_name):
cursor.execute(f"SELECT * FROM {table_name}")
result = cursor.fetchall() # 쿼리 결과를 튜플의 리스트 형태로 반환
cursor.execute(f"SHOW COLUMNS FROM {table_name}")
columns = [column[0] for column in cursor.fetchall()] # 열 이름 추출하여 리스트에 저장
df = pd.Dataframe(result, columns=columns)
return df
df = fetch_to_dataframe(cursor, "table_name")
conn.close()
'SQL' 카테고리의 다른 글
[SQL] 성능 좋은 SQL 작성법 (0) | 2024.08.09 |
---|---|
[SQL] 분석 실습 (0) | 2024.08.06 |
[SQL] 자주 쓰는 DDL / DML 기본 (0) | 2024.08.05 |