데이터 취업 스쿨 스터디 노트 -(31) python with mysql

테리·2024년 7월 24일

python으로 mysql 접속 후 실행하는 방법

  • jupyter notebook or vscode를 통해 실행

mysql driver 설치

mysql에 접속하기 위한 코드

mydb = mysql.connector.connect(
	host = "<hostname>",
  	user = "<username>"
  	password = "<password>"
  )

mysql close

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

또는

특정 데이터베이스에 연결

쿼리 실행

  • execute

sql 파일 실행

sql 파일 내에 쿼리가 여러개 존재하는 경우

multi=True를 추가함

fetchall

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

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

python with csv

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

Read CSV

zerobase에 연결

cursor 만들기

  • buffered= True

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 데이터를 입력하는 코드 작성

0개의 댓글