실습환경 만들기
- Jupyter Notebook 실행
- VSCode 혹은 Web Browser 를 통해 실행하고, ds_study 환경에서 작업 - Jupyter notebook 과 mysql 은 모두 sql_ws 폴더에서 시작 - AWS RDS 로 생성한 database-1 을 모두 사용
- AWS RDS(database-1) zerobase 의 police_station 테이블의 데이터를 모두 삭제
- VSCode 의 경우 새파일을 열고 해당 파일명을 입력
- 오른쪽 상단에서 ds_study 를 선택한 뒤 실습
Python with MySQL
- Python 에서 MySQL 을 사용하기 위해서는 먼저 MySQL Driver 를 설치
- 설치 확인
[Create Connection]
- MySQL 에 접속하기 위한 코드
- 예제 1 - Local Database 연결
- 예제 2 - AWS RDS (database-1) 연결
[Close Database]
- 예제 1
- 예제 2
[Connect to Database]- 특정 Database 에 접속하기 위한 코드
- 예제 1 - Local MySQL 의 zerobase 연결
- 예제 2 - AWS RDS (database-1) 의 zerobase 에 연결
[Execute SQL]
- Query 를 실행하기 위한 코드
- 예제 1 - 테이블 생성
- 결과 확인
- 예제 2 - 테이블 삭제
- 결과 확인
[Execute SQL File 1]
- SQL File 을 실행하기 위한 코드
- 예제 1 - test03.sql 생성
- test03.sql 실행
- 결과 확인
[Execute SQL File 2]
- SQL File 내에 Query 가 여러개 존재하는 경우
- 예제 2 - test04.sql 생성
- 실행 (에러)
- Multi = True
- 결과 확인
[Fetch All]
- 예제 1 - sql_file 테이블 조회 (읽어올 데이터 양이 많은 경우 buffered=True)
- 참고, 검색결과를 Pandas 로 읽기
Python with CSV
CSV 에 있는 데이터를 Python 으로 INSERT
[Read CSV]
제공받은 police_station.csv 를 Pandas 로 읽어와서 데이터를 확인
[Zerobase 에 연결]
[Cursor 만들기]
읽어올 양이 많은 경우 cursor 생성 시 buffer 설정을 해준다
[INSERT 문 만들기]
[데이터 입력]
commit() 은 database 에 적용하기 위한 명령
결과 확인
검색결과를 Pandas 로 읽기
csv 한글이 깨지는 경우, encoding 값을 'euc-kr' 로 설정 (특히 우리나라 사이트에서 제공받은 csv 파일들)
Python with CSV 예제
crime_status 테이블에 2020_crime.csv 데이터를 입력하는 코드를 작성
- AWS RDS(database-1) zerobase 에 접속
- 2020_crime.csv 데이터(encoding='euc-kr') 읽어오기
- INSERT 쿼리 작성
- 데이터를 crime_status 테이블에 INSERT
- crime_status 테이블의 데이터 조회
- 조회한 결과를 Pandas 로 변환해서 확인
SQL을 이용하여 저장했던 데이터를 전에 배운 EDA 부분의 pandas와 연결하여 다룰 수 있어서 재미있었다
Fetch all, buffered, cursor 등 새로운 기능들이 많이 나와서 헷갈리고 아직까지도 혼자 코드에서 적용하여 사용하기에는 문법이 어렵다
한 단원 한 단원 지나갈수록 모르는 것들이 너무 쌓여가는 느낌이라서 걱정이 되는 것 같다
내일은 PRIMARY KEY, FOREIGN KEY를 공부할 예정이다