[Python3] 파이썬 MySQL pymysql DB 데이터 '추가(INSERT)' 예제 샘플 (간단)

반응형

 

 

[Python3] 파이썬 MySQL 
pymysql DB 
데이터 '추가(INSERT)' 
예제 샘플 (간단)

 

 

 


 

 

 

 

살면서 DB는 절대 하고 싶지 않았는데, 일단 뭐 직장인이라는게 다 그렇지 않겠는가. 퇴사자의 업무를 하나씩 받으면서 나 역시 성장해 가는 듯 하다. 성장 하고 싶지 않았는데.

 

일단 약 8만개 정도 되는 취약점 정보를 mysql에 입력을 해야하는데 도통 한 땀 한 땀 손으로 할 수가 없어서 파이썬으로 만들어서 넣어보기로 하자. 사용하는 모듈은 파이썬3의 pymysql을 사용하려 한다.

 

 

파이썬 pymysql 계정 및 테이블 정보

 

집에는 pymysql 모듈을 써본적이 없으니 pip으로 설치하고 난 뒤 기본적인 계정 정보를 입력한다. 아이디와 비밀번호, 접속해야하는 host 주소와 db 명을 입력한다. 인코딩 문제때문에 charset='utf8'로 설정해준다.

 

내가 원하는 DB 명을 확인 후 insert into (DB명)을 입력한다. 원하는 컬럼 명과 그에 맞는 데이터를 넣을 vulues를 설정한다. 직접 넣는 것이 아닌 파일을 파싱해서 넣어야 하기 때문에 %s로 변수값을 받을 예정이다.

 

# pip install pymysql

import pymysql
db = pymysql.connect(
user='test_id', passwd='passwd1234', host='localhost', db='testDB', charset='utf8' )

insert_cveinfo_data = '''
insert into db_name (cve, score, vector, com, auth, inta, avail, sum, refe)
values (%s, %s, %s, %s, %s, %s, %s, %s, %s)
'''

 

 

 

파이썬 pymysql 계정 정보

 

하나의 값을 넣으려면 굳이 vals을 통해 구분할 필요는 없다. 하지만 몇 만개의 정보를 긁어다가 insert를 해주어야 하는 상황이기 때문에 미리 하나 빼두었다. 지금은 test 문자열로 넣어두었지만, 아마 추후에는 파싱된 변수명이 들어가지 않을까 싶다.

 

execute를 활용하여 위에 작성해둔 입력 양식과 vals의 값의 쿼리를 진행한다. do.commit()을 통해 완료하면 정상적으로 데이터가 들어가는 것을 확인했다. close를 통해 닫아주어야하지만 with를 사용할 예정이라 해당 코드에서는 생략했다. 간략하게 몇 줄 안되는 코드로 다양하게 활용 가능할 듯 하다.

 

vals = ["test1","test2","test3","test4","test5","test6","test7","test8","test9"]

cursor = db.cursor(pymysql.cursors.DictCursor)
cursor.execute(insert_cveinfo_data,vals)
db.commit()

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유