오늘도 한 뼘 더

[SQL] 조회한 데이터 csv 파일로 저장하기 본문

Study/MySQL

[SQL] 조회한 데이터 csv 파일로 저장하기

나른한댕댕이🐶 2023. 7. 19. 15:09
728x90
반응형

  # 배경  

비개발자들이 데이터를 볼 수 있도록 조회한 데이터를 csv파일로 저장해서 공유해야 한다.

일반 데이터가 아닌 데이터 테이블의 칼럼 정보들을 조회 후 저장해야 했다.

 

  # 데이터 조회하기  

일반 데이터와 같이 select가 아닌 show를 사용하여 데이터 조회가 가능하다

SHOW columns from {DATABASE}.{TABLE};

 

  # csv 파일로 저장하기  

1. INTO OUTFILE 사용

select 문으로 조회한 데이터의 경우 'INTO OUTFILE' 명령어를 통해서 csv 파일로 저장이 가능하다.

SELECT * FROM {DATABASE}.{TABLE} INTO OUTFILE 'C:\\Doc\info.csv';

 

2. select 문이 아닌 경우

show의 경우 이 방식으로는 저장이 불가능하다. 다음과 같은 방식으로 저장을 한다.

mysql -h {DB_URL} -u {DB_USER} -p \
    -e "show full columns from {DATABASE}.{TABLE}" | sed 's/\t/","/g;s/^/"/;s/$/"/;' > ./info.csv

 

  # csv 파일 한글 깨짐 현상 해결하기  

저장한 파일을 열었을 때 한글이 다 깨지는 문제가 발생하였다.

해당 문제를 해결하기 위해서 csv 파일의 인코딩을 변경하여 저장하였다.

#iconv -c -f {현재 인코딩 방식} -t {변환 할 인코딩 방식} {filename} > {filename to save}
iconv -c -f utf-8 euc-kr info.csv > info2.csv
728x90
반응형
Comments