Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블 데이터를 CSV 파일로 내보낼 때 쿼리로 지정할 수 있는 설정 옵션은 무엇일까?

CSV(Comma-Separated Values)는 스프레드시트나 데이터베이스처럼 표 형태의 데이터를 저장하기 위한 간단한 파일 형식입니다. MySQL 테이블의 데이터를 CSV 파일로 내보낼 때는 FIELDS TERMINATED BY 옵션을 활용할 수 있습니다. 이 옵션을 사용하면 각 필드의 값이 CSV 파일에서 서로 다른 셀에 구분되어 저장되도록 지정할 수 있습니다.

예제로 살펴보기

먼저 다음과 같은 데이터가 담긴 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)

위 테이블에서 idName 두 개의 컬럼만 CSV 파일로 내보내고 싶다면, 아래와 같은 쿼리를 사용하면 됩니다. 이 쿼리는 Student_info 테이블에서 해당 컬럼의 값만 추출하여 student2.csv라는 파일에 저장합니다.

mysql> Select id, Name from Student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student2.csv' FIELDS TERMINATED BY ',';
Query OK, 6 rows affected (0.07 sec)

이 쿼리가 실행되면 student2.csv 파일이 생성되며, idName 컬럼의 값들이 쉼표(,)를 기준으로 구분되어 각각 다른 셀에 기록됩니다.

추가로 알아두면 좋은 옵션들

FIELDS TERMINATED BY 외에도 CSV 내보내기 시 유용하게 쓸 수 있는 옵션이 몇 가지 더 있습니다.

  • LINES TERMINATED BY '\n': 행을 구분하는 문자를 지정합니다. 윈도우 환경에서는 '\r\n'을 사용하기도 합니다.
  • OPTIONALLY ENCLOSED BY '"': 필드 값을 큰따옴표로 감싸서, 값 안에 쉼표가 포함된 경우에도 데이터가 깨지지 않도록 합니다.
  • ENCLOSED BY: 모든 필드 값을 지정한 문자로 감쌉니다.

이러한 옵션들을 조합하면 엑셀 등 다른 프로그램에서 열어도 깨짐 없이 정상적으로 표시되는 CSV 파일을 만들 수 있습니다.