MySQL 테이블의 데이터를 텍스트 파일로 내보낼 때 INTO OUTFILE 구문과 함께 다양한 서식 옵션을 사용할 수 있습니다. 대표적인 옵션으로는 필드를 구분하는 'FIELDS TERMINATED BY', 값을 감싸는 문자를 지정하는 'ENCLOSED BY', 행을 구분하는 'LINES TERMINATED BY' 등이 있으며, 이를 조합하면 내보내지는 텍스트 파일의 값들을 원하는 형태로 배치할 수 있습니다.
예제
다음과 같은 데이터가 담긴 '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' 두 컬럼만 파일로 내보내고 싶다면 아래 쿼리처럼 작성할 수 있습니다. 이 쿼리는 'Student_info' 테이블에서 'id'와 'Name' 컬럼의 값만 추출하여 'student3.txt'라는 파일에 저장합니다.
mysql> Select id, Name from Student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student3.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; Query OK, 6 rows affected (0.07 sec)
이 쿼리가 실행되면 'student3.txt' 파일이 생성되며, 각 옵션이 적용된 방식은 다음과 같습니다.
- FIELDS TERMINATED BY ',': 각 필드(컬럼) 값이 쉼표(,)로 구분됩니다.
- ENCLOSED BY '"': 각 값이 큰따옴표(")로 감싸집니다.
- LINES TERMINATED BY '\r\n': 각 레코드가 캐리지 리턴과 줄바꿈( )으로 구분되어 새로운 줄에 저장됩니다.
내보내진 파일의 결과
위 쿼리가 적용된 후 'student3.txt' 파일의 내용은 다음과 같이 서식화됩니다.
"101","YashPal" "105","Gaurav" "125","Raman" "130","Ram" "132","Shyam" "133","Mohan"
이처럼 INTO OUTFILE과 함께 서식 옵션을 조합하면, CSV 파일이나 특정 프로그램에서 요구하는 형식 등 목적에 맞게 데이터를 손쉽게 내보낼 수 있습니다.