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

MySQL LOAD DATA INFILE의 FIELDS TERMINATED BY 옵션으로 텍스트 파일 데이터를 테이블에 가져오는 방법

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'을 함께 지정하면 데이터가 더욱 정확하게 가져와집니다.