python으로 mysql 접속 후 실행하는 방법
- jupyter notebook or vscode를 통해 실행
mysql driver 설치


mysql에 접속하기 위한 코드
mydb = mysql.connector.connect(
host = "<hostname>",
user = "<username>"
password = "<password>"
)



mysql close
사용이 끝났을 때는 연결을 종료해줘라.(자원관리를 위해서)


또는

특정 데이터베이스에 연결



쿼리 실행



sql 파일 실행



sql 파일 내에 쿼리가 여러개 존재하는 경우
multi=True를 추가함




fetchall
쿼리를 실행했을 때 결과값이 행(row)을 포함하고 있으면 fetchall해서 출력함.
select 쿼리의 모든 결과를 한번에 가져오며 결과는 리스트 형태로, 각 행은 튜플로 반환된다.


검색 결과를 pandas 데이터프레임으로 만들어 일기

python with csv
- 엑셀이나 csv 파일에 들어있는 큰 데이터를 DB에 넣고 쿼리를 해보고 싶을 때 mysql 같은 경우는 워크벤치나 명령어로 테이블에 바로 넣을 수 있음. 하지만 국내 데이터 인코딩은 utf-8로 안되어 있는 경우가 많아서 데이터가 잘 안들어 가는 경우가 있다. 이런 경우 파이썬에서 불러와 작업하면 쉽게 할 수 있다.
- csv에 있는 데이터를 python으로 insert
Read CSV

zerobase에 연결

cursor 만들기

insert문 만들기
- 읽어온 csv 파일을 보면 두개의 컬럼이 있으므로 각 컬럼의 string 값을 받기 위해 %s를 사용함.

데이터 입력
- commit(): 데이터베이스에 적용하기 위한 명령
- tuple(row): row에 df의 행이 하나씩 들어옴. 이것을 튜플 형태로 바꿔주는 것.

cursor.execute(sql) 만 보면 위에서 입력한 sql 쿼리가 실행됨. 그런데 그 안에 %s, %s 가 있으므로 여기에 넣어줄 값을 그 옆에 있는 tuple(row)에서 넣어주는 것임.
cursor.execute(sql, tuple(row))

검색 결과 pandas로 읽기

csv 한글이 깨지는 경우 encoding 'euc-kr'

예제
- crime_status 테이블에 2020_crime.csv 데이터를 입력하는 코드 작성





