TIL[83].pymysql을 이용한 데이터 추출

jake.log·2020년 10월 25일
0
  1. MySQL 데이터 준비

    1)데이터베이스 생성 및 테이블 생성

    CREATE DATABASE brandi default CHARACTER SET UTF8;
    SHOW DATABASES; # 데이터베이스 생성 확인
    CREATE TABLE accounts
    (
     `id`               INT            NOT NULL    AUTO_INCREMENT, 
     `identification`   VARCHAR(45)    NOT NULL, 
     `password`         VARCHAR(45)    NOT NULL,  
     PRIMARY KEY (id)
    );

    2)생성된 테이블 확인

    DESC accounts;

    3)데이터 삽입

    INSERT INTO accounts
    (identification,password)
    VALUES('hong','test1234');
    INSERT INTO accounts
    (identification,password)
    VALUES('jake','test5678');

    4)삽입된 데이터 확인

    SELECT * FROM accounts;
  2. 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='***', passwd='***', db='brandi', charset='utf8')
    cursor = db.cursor()

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

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

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

    result = cursor.fetchall()

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

    db.close()

    결과값 데이터 프레임화

    a= pd.DataFrame(result)
profile
꾸준히!

0개의 댓글