데이터베이스 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
pandas, pymysql 라이브러리
pandas 라이브러리의 많은 기능 중 일부를 연습해보고자 한다.
read_sql()
pandas 라이브러리의 다양한 기능 중, read_sql() 함수를 사용하면 SQL 코드의 결과를 바로 확인할 수 있다.
import pymysql
import pandas as pd
host_name = 'localhost'
host_port = 3306
username = 'root'
password = 'mysql pw'
database_name = 'student_mgmt'
db = pymysql.connect(
host=host_name, # MySQL Server Address
port=host_port, # MySQL Server Port
user=username, # MySQL username
passwd=password, # password for MySQL username
db=database_name, # Database name
charset='utf8'
)
SQL = "SHOW TABLES"
df = pd.read_sql(SQL, db)
df
```
결과 :
```
SQL = 'SELECT * FROM students'
df = pd.read_sql(SQL, db)
df
```
결과 :
```
이처럼 pandas 라이브러리의 read_sql() 함수를 사용하면, terminal 또는 Workbench 없이도 파이썬 코드를 통해
SQL의 결과를 바로 확인할 수 있다. (단, 위의 결과는 주피터노트북에서 실행한 결과이다.)
참고로 pandas 라이브러리의 read_sql() 함수는 첫 번째 인자로 SQL 쿼리를 받고, 두 번째 인자로 db connection
객체를 받는다.
to_csv()
pandas 라이브러리의 다양한 기능 중, to_csv() 함수를 사용하면 데이터 검색의 결과를 파일(csv file)로 저장할 수 있다.
import pymysql
import pandas as pd
host_name = 'localhost'
host_port = 3306
username = 'root'
password = 'mysql pw'
database_name = 'student_mgmt'
db = pymysql.connect(
host=host_name, # MySQL Server Address
port=host_port, # MySQL Server Port
user=username, # MySQL username
passwd=password, # password for MySQL username
db=database_name, # Database name
charset='utf8'
)
SQL = "SELECT * FROM students"
df = pd.read_sql(SQL, db)
df.to_csv('students.csv', sep=',', index=False, encoding='utf-8')
```
결과 :
```
pandas 라이브러리의 to_csv() 함수 인자로 index = False를 넣어주면, csv 파일에 들어가는 데이터에 인덱스 번호가
생략된다.
*참고
1. csv 파일의 포멧은 데이터 간 콤마(,)로 구분해서 표시하는 단순 형식을 가지고 있다.
2. csv 파일의 포멧은 엑셀 프로그램에서도 읽고 쓸 수 있으며, IT 분야에서 많이 활용된다.
'Database' 카테고리의 다른 글
MySQL - 실전 크롤링과 데이터베이스 (2) | 2021.11.11 |
---|---|
MySQL - Foreign Key (0) | 2021.11.11 |
MySQL - 파일로 실행하는 SQL (0) | 2021.11.10 |
MySQL - 파이썬으로 다루는 MySQL (0) | 2021.11.10 |
MySQL - SQL 기초 문법(2) (0) | 2021.11.06 |
댓글