[TIL] pymysql

김성진·2020년 10월 31일
0
post-thumbnail

Pymysql이란..?

Python 전용 데이터베이스 커넥터를 뜻한다. Python 프로그램이 MySQL 서버와 통신할 수 있게 만들어주는 라이브러리이다. 사용법은 먼저 모듈을 import하고 pymysql.connect() 메소드를 사용해 MySQL에 연결, 여기서()안에 host, user, password, db, charset 같은 설정들을 해주고, connection 객체로부터 cursor() 메소드를 호출하여 Cursor 객체를 가져온다(ex,변수=conn.cursor). 그리고 저 변수에 execute() 메소드를 사용해 SQL 문장을 DB 서버에 전송한다. Insert(삽입), Update(수정), Delete(삭제) 등의 DML(data manipulation language) 문장을 실행하려면, 3개의 함수 중 하나를 선언한 뒤 connection 객체에 commit() 메소드를 사용하여 데이터를 확정conn.commit(), 그 뒤 conn.close()로 db 사용을 닫는다.

MySQL 데이터 추출

1.pymysql 설치

pip install PyMySQL

2.라이브러리 호출을 위해 PyMySql 모듈을 import한다.

import pymysql
import pandas as pd

3.DB연결 / pymysql.connect()메소드를 사용하여 MySQL에 연결 -호스트명, 포트, 로그인, 암호, 접속할 DB등을 파라미터로 지정한다.

4.쿼리실행 /MySQL 접속 성공 후, connection 객체로부터 cursor() 메소드를 호출하여 Cursor 객체를 가져온다.

db = pymysql.connect(host='localhost', port=3306, user='root', passwd='***', db='brandi', charset='utf8')
cursor = db.cursor()

5.Cursor 객체의 execute() 메소드를 사용하여 SQL 문장을 DB 서버에 전송

sql = '''SELECT * FROM accounts;'''
cursor.execute(sql)

6.값 추출 / SQL 쿼리의 경우 Cursor 객체의 fetchall(), fetchall(), fetchmany() 등의 메소드를 사용하여 서버로부터 가져온 데이터를 코드에서 활용, 삽입, 갱신, 삭제 등의 DML(Data Manipulation Language)문장을 실행하는 경우, INSERT/UPDATE/DELETE 후 Connection 객체의 commit()메소드를 사용하여 데이터 확정

result = cursor.fetchall()

7.db 접속 종료 / Connection 객체의 close() 메소드를 사용하여 DB 연결을 닫음

db.close()

결과값 데이터 프레임화

variable = pd.DataFrame(result)
profile
multi-national communicator with programming (back-end)

0개의 댓글