FIELDS TERMINATED BY 옵션이란?
텍스트 파일을 MySQL 테이블로 가져올 때, 파일 내부의 값들이 쉼표(,) 또는 콜론(:), 세미콜론(;) 같은 특정 구분자로 구분되어 있다면 'FIELDS TERMINATED BY' 옵션을 사용해야 합니다. 이 옵션은 각 필드가 어떤 문자로 구분되어 있는지 MySQL에 알려주는 역할을 하며, 이를 통해 구분된 값들이 테이블의 각 컬럼에 정확하게 매핑됩니다.
다음 예제를 통해 쉽게 이해할 수 있습니다.
예제
세미콜론(;)으로 구분된 아래와 같은 데이터가 텍스트 파일 'A.txt'에 저장되어 있고, 이를 MySQL 테이블로 가져오려고 한다고 가정해 보겠습니다.
100;Ram;IND;15000 120;Mohan;IND;18000
이제 아래 쿼리처럼 'FIELDS TERMINATED BY' 옵션을 사용하면 해당 데이터를 MySQL 테이블로 손쉽게 가져올 수 있습니다.
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee12_tbl FIELDS TERMINATED BY ';'; Query OK, 2 rows affected (0.04 sec) Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
결과 확인
쿼리 실행 결과 2개의 레코드가 성공적으로 삽입되었으며, SELECT 문으로 테이블을 조회하면 다음과 같습니다.
mysql> Select * from employee12_tbl; +------+----------------+----------+--------+ | Id | Name | Country | Salary | +------+----------------+----------+--------+ | 100 | Ram | IND | 15000 | | 120 | Mohan | IND | 18000 | +------+----------------+----------+--------+ 2 rows in set (0.00 sec)
세미콜론으로 구분되어 있던 각 값들이 Id, Name, Country, Salary 컬럼에 올바르게 나뉘어 저장된 것을 확인할 수 있습니다.
추가 팁
줄바꿈 문자를 별도로 지정해야 하는 경우에는 'LINES TERMINATED BY' 옵션을 함께 사용할 수 있습니다. 예를 들어 Windows 환경에서 생성된 파일은 줄바꿈이 '\r\n'으로 처리되므로, LINES TERMINATED BY '\r\n'을 함께 지정하면 데이터가 더욱 정확하게 가져와집니다.