MySQL 테이블의 데이터를 파일로 내보낼 때 SELECT ... INTO OUTFILE 문에 원하는 컬럼 이름을 직접 지정하면, 테이블 전체가 아닌 일부 필드만 텍스트 파일로 추출할 수 있습니다.
아래 예시를 통해 구체적인 방법을 살펴보겠습니다.
예시
다음과 같은 데이터를 가진 '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)
위 테이블에서 'id'와 'Name' 두 개의 컬럼만 파일로 내보내고 싶다면, SELECT 절에 해당 컬럼명만 명시하면 됩니다. 아래 쿼리는 'Student_info' 테이블에서 'id'와 'Name' 값만 추출하여 'student1.txt'라는 파일로 저장합니다.
mysql> Select id, Name from Student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student1.txt'; Query OK, 6 rows affected (0.07 sec)
이 쿼리를 실행하면 지정한 경로에 'student1.txt' 파일이 생성되며, 그 안에는 'Student_info' 테이블의 'id'와 'Name' 컬럼 값만 저장됩니다.
참고 사항
INTO OUTFILE을 사용할 때는 MySQL 서버가 해당 디렉터리에 파일을 쓸 수 있는 권한이 있어야 하며, 같은 이름의 파일이 이미 존재하면 오류가 발생하므로 미리 삭제하거나 다른 파일명을 사용해야 합니다. 또한 secure_file_priv 시스템 변수에 설정된 허용 경로 안에서만 파일을 생성할 수 있습니다.