본문 바로가기
SQL

[SQL] 데이터를 삽입하고 불러오는 방법

by Mr.Han 2024. 8. 5.

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