쿼리 결과를 CSV 파일로 내보내기
데이터를 내보내는 것은 가져오는 것만큼 중요합니다. 보고서를 작성하거나, 다른 시스템과 데이터를 공유하거나, 스프레드시트 프로그램에서 분석을 수행해야 할 수 있습니다. SELECT ... INTO OUTFILE 문을 사용하면 모든 쿼리 결과를 파일로 직접 저장할 수 있습니다.
먼저 MySQL 셸에서 테이블에 두 명의 직원을 더 추가해 보겠습니다.
INSERT INTO employees (id, first_name, last_name, email, department) VALUES
(5, 'Alice', 'Johnson', 'alice.johnson@example.com', 'Sales'),
(6, 'Bob', 'Williams', 'bob.williams@example.com', 'Marketing');
이제 전체 employees 테이블을 employees_export.csv라는 새 파일로 내보냅니다. 먼저 올바른 데이터베이스에 있는지 확인합니다.
SELECT id, first_name, last_name, email, department
FROM company.employees
INTO OUTFILE '/tmp/employees_export.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
SELECT ...: 내보낼 데이터를 지정하는 표준 쿼리입니다.
INTO OUTFILE '/tmp/employees_export.csv': 출력 파일의 전체 경로를 지정합니다. 보안상의 이유로 MySQL 은 이 파일이 이미 존재하지 않아야 합니다.
FIELDS TERMINATED BY ',': 필드를 쉼표로 구분합니다.
ENCLOSED BY '"': 일반적인 CSV 형식인 각 필드 값을 큰따옴표로 묶습니다.
LINES TERMINATED BY '\n': 각 행을 줄 바꿈 문자로 끝냅니다.
명령을 실행한 후 다른 터미널 탭으로 전환하거나 (또는 새 탭을 열어) 새로 생성된 파일의 내용을 확인합니다.
cat /tmp/employees_export.csv
테이블의 모든 여섯 행이 CSV 파일 형식으로 표시됩니다.
"1","John","Doe","john.doe@example.com","Sales"
"2","Jane","Smith","jane.smith@example.com","Marketing"
"3","Peter","Jones","peter.jones@example.com","Engineering"
"4","Mary","Brown","mary.brown@example.com","HR"
"5","Alice","Johnson","alice.johnson@example.com","Sales"
"6","Bob","Williams","bob.williams@example.com","Marketing"