[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()
'유부남의 이것저것 > IT' 카테고리의 다른 글
[파이썬] Selenium WebDriverException chromedriver PATH 에러 해결 (0) | 2022.08.01 |
---|---|
[엑셀] 볼링 정기전 점수 계산표, 에버리지 / 핸디 자동 계산 및 순위 1등 이름 출력 (Counta / Large / Match / Index) (12) | 2022.07.25 |
[python3] 리눅스에서 '파이썬 pip 패키지를 찾을 수 없습니다' 간단하게 해결하기 (0) | 2022.07.19 |
최신 취약점 CVE List 크롤링 , 웹 파싱 or 웹 크롤러 만들기 (파이썬) - 1탄 (0) | 2022.07.18 |
[엑셀] 셀 글자/문자 구분에 따라 색 채우기 (조건부 서식/구글 스프레드시트) (1) | 2022.07.12 |