본문 바로가기

카테고리 없음

AIOT - pymysql

이번엔 pymysql을 이용 파이썬으로 데이터베이스를 다뤄보겠습니다.

 

먼저 mysql을 통해 animal이라는 간단한 데이터베이스 테이블을 만들어줬습니다.

데이터베이스

이제 이 데이터베이스를 파이썬으로 불러와서 csv파일로 바꾸는 프로그램을 만들어보겠습니다.

import pymysql
import csv

# 데이터베이스와 프로그램을 연결한다 (다리놓기)
conn = pymysql.connect(
    host = "127.0.0.1",
    user="root",
    password="0000",
    db="pydb",
    charset="utf8"
)

curs = conn.cursor() # 데이터 관련 처리를 수행할 심부름꾼
curs.execute("SELECT * FROM animal") # animal 테이블 가져오기
result = curs.fetchall() # result 변수에 튜플 형태로 저장

# 파일 작성
f = open("animal.csv", "w", encoding="UTF-8", newline="")
writer = csv.writer(f)

for line in result :
    writer.writerow(line)

f.close()

# 잘 됐나 확인까지
f = open('animal.csv','r', encoding="utf-8")
reader = csv.reader(f)
 
for line in reader:
    print(line)
 
f.close()

conn.close() # 연결 해제 (주로 프로그램 끝에서 처리)

프로그램은 위와 같은데

 

먼저 connect 함수를 통해 DB와 연결해줍니다.

 

그 후 커서를 생성해줬는데요. 연결한 DB와 상호작용하기 위해 cursor 객체를 생성해주어야 합니다. 커서는 데이터 관련 처리를 수행할 심부름꾼이라고 보시면 됩니다. 

 

데이터를 result라는 변수에 담을 때 .fetchall() 메서드를 사용했는데요.

PyMySQL의 모든 데이터 조작은 execute()와 fetch() 계열을 사용합니다.

메서드 설명
fetchall() 모든 데이터를 한 번에 가져올 때 사용
fetchone() 한 번 호출에 하나의 행만 가져올 때 사용
fetchmany(n) n개만큼의 데이터를 가져올 때 사용

이후 파일을 작성하는 코드를 통해 데이터베이스를 csv파일로 변환해줍니다.

작성한 csv 파일