본문 바로가기

파이썬으로 퀀트 프로그램 만들기 project

pandas로 파이썬에 SQL사용하기 - DB에 접속하여 데이터 불러오기

728x90

pymysql로 sql의 테이블을 불러오면 튜플 형태로 불러와집니다. 이것은 작업하기 편한 데이터프레임이 아닙니다. 

pandas를 통해 쉽게 sql 테이블 데이터를 불러오는 방법을 배워봅시다.

 

1. 필요한 라이브러리 불러오기

import pandas as pd
from sqlalchemy import create_engine

pandas에서 sql 연결할 때는 SQLalchemy ORM(Object Relational Mapping)을 사용함
ORM이란 어플리케이션과 데이터베이스를 연결할 때 SQL 언어가 아닌 어플리케이션 개발 언어로
데이터베이스를 접근할 수 있게 해주는 툴을 뜻합니다.
파이썬 코드를 SQL 쿼리로 자동 변환하여 SQL 쿼리를 따로 작성할 필요 없이 파이썬 코드를 작성하는 것만으로 데이터베이스를 조작가능합니다.

 

 

2. create engine

# engine = create_engine('mysql+pymysql://[사용자명]:[비밀번호]@[호스트:포트]/[사용할 데이터베이스]')
engine = create_engine('mysql+pymysql://root:1234@127.0.0.1:3306/nameofdb')

create_engine 객체를 생성합니다.

파라미터에 필요한 정보는 위의 주석과 같습니다.

 

 

3. 필요한 쿼리 작성하여 데이터 불러오기

query = """select * from nameoftable;"""
nameoftable = pd.read_sql(query, con = engine)
engine.dispose() # 연결종료

print(nameoftable)

pd.read_sql 함수를 통해 쿼리 내용을 실행하여 데이터를 받아옵니다.

pd.read_sql에서 con에는 2번에서 생성했던 engine을 사용합니다.

engine을 이용한 작업이 끝났으면 항성 dispose를 통해 연결 종료합니다.

 

 

4. 결과확인

코드 결과

제가 입력해뒀던 데이터가 잘 가져와 진 것을 확인 할 수 있습니다.

 

 

-모든 코드-

import pandas as pd
from sqlalchemy import create_engine 

# engine = create_engine('mysql+pymysql://[사용자명]:[비밀번호]@[호스트:포트]/[사용할 데이터베이스]')
engine = create_engine('mysql+pymysql://root:8019@127.0.0.1:3306/nameofdb')

query = """select * from nameoftable;"""
nameoftable = pd.read_sql(query, con = engine)
engine.dispose() # 연결종료

print(nameoftable)