2. SQL 조작하기 > 2-4. csv파일을 DB에 적재하기

csv파일을 DB에 적재하기

데이터를 DB에 넣을 때 양이 적으면 INSERT를 활용하여 하나하나 넣을 수 있지만, 일반적으로는 csv나 xlsx 형식으로 raw data를 제공하는 경우가 많습니다. 따라서 이번에는 csv 파일을 한 번에 DB에 넣는 방법 중, 가장 익숙한 Workbench를 활용하는 방법을 알아보도록 하겠습니다.

  1. 원하는 DB의 TABLE을 오른쪽 클릭합니다.

step1 2. TABLE DATA IMPORT WIZARD를 클립합니다. step2 3. IMPORT할 csv를 파일 디렉코리에서 선택합니다. step3 4. 새로운 TABLE로 만들지, 기존의 TABLE에 병합할지 선택합니다. 5. 인코딩 방식, 어떤 필드(COLUMN)을 포함할 지, 각 필드(COLUMN)의 자료형 등을 선택합니다. step5

위 방법대로 했을 때 간혹 unhandled exception : 'cp949' codec can't decode byte 0xeb in position 0 : illegal multibyte sequence와 같은 에러가 발생할 수 있습니다. 이 문제는 다음과 같은 방법으로 해결해보세요.

  • COLUMN명이 한글로 되어 있는 경우

: 컬럼명을 영어로 바꾼 뒤 다시 시도해보세요.

  • 환경변수 설정이 되어 있지 않은 경우

: 환경 변수 설정은 운영체제(OS)가 컴퓨터의 어떤 경로에서든지 파일을 인식하도록 하는 작업입니다. 환경변수 설정 방법은 이 블로그를 참고해 주세요!

  • local_infile 설정이 되어있지 않은 경우

: mysql 등 데이터베이스에서는 환경변수 설정이 되어 있더라도 보안을 위해서 local의 데이터를 바로 import 할 수 없도록 막아 둡니다. 우리는 local_infile=True로 바꿔주면서 데이터를 import할 수 있도록 만들 수 있어요. 이 방법은 교안 4-6의 'cmd로 데이터 적재하기 > 2. cmd 환경에서 데이터를 DB에 적재하기' 파트의 4번 '확인하기' 와 동일하니 해당 교안을 확인해주세요. cmd에서 실행한 사진을 아래에 첨부하니 참고하여 진행해보세요. local_infile

  • MySQL이 최신 버전이어서 생기는 문제일 경우
    1. 이 블로그를 참고해서 깔끔하게 mysql을 삭제한 후,
    2. 요 블로그를 참고해서 archive 탭의 mysql 8.0.22버전을 다운로드 한 뒤 파일 업로드를 다시 시도해보세요.
마지막으로 업데이트 된 날짜:
2022년 9월 24일