MySQL에서 WHERE 조건을 사용해 파일로 데이터 내보내기
MySQL 테이블의 데이터를 파일로 내보낼 때 WHERE 절에 조건을 추가하면 원하는 레코드만 선택적으로 추출할 수 있습니다. 전체 데이터가 아닌 특정 조건을 만족하는 값만 파일로 저장해야 할 때 매우 유용한 기능입니다.
아래 예제를 통해 구체적인 사용 방법을 살펴보겠습니다.
예제: Student_info 테이블
다음과 같은 데이터를 가진 'Student_info' 테이블이 있다고 가정해 보겠습니다.
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 125 | Raman | Shimla | Computers | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +------+---------+------------+------------+ 6 rows in set (0.07 sec)
위 테이블에는 총 6개의 레코드가 저장되어 있습니다.
조건을 적용한 내보내기 쿼리
이제 id 값이 120보다 큰 레코드만 CSV 파일로 내보내고 싶다고 가정해 보겠습니다. 이 경우 WHERE 절에 조건을 추가한 다음 쿼리를 사용하면 됩니다.
mysql> Select * from student_info WHERE id > 120 into outfile 'C:/mysql/bin/mysql-files/student4.csv' Fields terminated by ','; Query OK, 4 rows affected (0.16 sec)
쿼리 실행 결과, 조건을 만족하는 4개의 레코드가 지정된 경로의 'student4.csv' 파일로 내보내집니다.
내보내기 결과 확인
'student4.csv' 파일을 열어보면 다음과 같은 값들이 저장되어 있는 것을 확인할 수 있습니다.
125 Raman Shimla Computers 130 Ram Jhansi Computers 132 Shyam Chandigarh Economics 133 Mohan Delhi Computers
핵심 정리
이처럼 SELECT ... INTO OUTFILE 구문에 WHERE 절을 함께 사용하면 특정 조건을 만족하는 데이터만 손쉽게 파일로 내보낼 수 있습니다. 또한 FIELDS TERMINATED BY ',' 옵션을 통해 필드를 쉼표(,)로 구분하여 CSV 형식으로 저장할 수 있습니다.
참고로 이 기능을 사용하려면 MySQL 서버 설정에서 secure_file_priv 변수에 지정된 디렉터리에 파일을 쓸 수 있어야 하며, 해당 경로에 대한 적절한 권한이 필요합니다.