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;
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)