MySQL 쿼리 결과 CSV 로 저장 추출 방법

MySQL DB(MariaDB)에서 쿼리 결과를 csv로 추출해야되는 경우가 종종 있습니다.

DB 접속 툴 없이 콘솔 내에서도 명령어로 추출이 가능하며 사용법은 간단합니다.

MySQL 쿼리 결과 추출하기

DB에 접속하여 아래 쿼리를 실행하면 됩니다.

주석된 내용처럼 

-- USERS 테이블에서 USERS_ID, USERS_NAME 컬럼 조회한 결과를 /usr/local/maria/data/users.csv 로 저장
-- 한글, 기타 문자가 깨진다면 CHARACTER SET euckr 설정 추가 가능
SELECT USERS_ID, USERS_NAME FROM USERS INTO OUTFILE '/usr/local/maria/data/users.csv' FIELDS TERMINATED BY ',' ENCLOSED BY "'";

-- csv(엑셀) 편집을 할 때 데이터가 0으로 시작하면 표현이 안됩니다.
-- 따라서 CONCAT 명령어로 0으로 시작할 수 있는 데이터를 감싸주어 0이 사라지는걸 방지합니다.
-- 0으로 시작하지 않는 다면 그냥 컬럼만 입력하면 됩니다.
SELECT CONCAT('"',USERS_ID,'"'), USERS_NAME FROM USERS INTO OUTFILE '/usr/local/maria/data/users.csv' FIELDS TERMINATED BY ',' ENCLOSED BY "'";

 

만약 아래 사진처럼 추출 쿼리를 입력하였을 때 Can't create/write to file .. (Errcode: 13 "Permission denied") 에러가 난다면 파일 저장 경로를 DB가 설치된 경로/data로 지정하면 저장 됩니다.

이제 저장된 파일을 열어서 확인하면 조회한 결과를 파일로 확인할 수 있습니다.

댓글

Designed by JB FACTORY