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

MySQL LOAD DATA INFILE 문에서 'ENCLOSED BY' 옵션을 사용하여 텍스트 파일의 데이터를 MySQL 테이블로 가져오는 방법

때때로 입력용 텍스트 파일의 필드 값이 큰따옴표(" ")로 묶여 있는 경우가 있습니다. 이런 형식의 파일에서 데이터를 가져오려면 LOAD DATA INFILE 문에 'ENCLOSED BY' 옵션을 함께 사용해야 합니다. 다음 예제를 통해 쉽게 이해해 보겠습니다.

예제

다음은 A.txt 파일에 저장된 쉼표(,)로 구분된 값입니다. 이름(Name)과 국가(Country) 필드가 큰따옴표로 묶여 있는 것을 확인할 수 있습니다.

100,"Ram","INDIA",25000
101,"Mohan","INDIA",28000

이 데이터를 아래와 같이 생성한 employee2_tbl 테이블로 가져오고자 합니다.

mysql> Create table employee2_tbl(Id Int, Name Varchar(20), Country Varchar(20), Salary Int);

Query OK, 0 rows affected (0.1 sec)

이제 파일의 데이터를 데이터베이스 테이블로 옮기려면 다음과 같이 ENCLOSED BY 옵션이 포함된 LOAD DATA INFILE 문을 실행하면 됩니다.

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee2_tbl FIELDS TERMINATED BY ',' ENCLOSED BY '"';
Query OK, 2 rows affected (0.16 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0

mysql> Select * from employee2_tbl;
+------+-------+---------+--------+
| Id   | Name  | Country | Salary |
+------+-------+---------+--------+
| 100  | Ram   | INDIA   |  25000 |
| 101  | Mohan | INDIA   |  28000 |
+------+-------+---------+--------+
2 rows in set (0.00 sec)

위 결과 집합을 보면 A.txt 파일의 데이터가 employee2_tbl 테이블로 성공적으로 옮겨진 것을 확인할 수 있습니다. 여기서 FIELDS TERMINATED BY 절은 필드 사이의 구분자(쉼표)를 지정하고, ENCLOSED BY 절은 각 필드 값을 감싸는 문자(큰따옴표)를 지정합니다. 이렇게 설정하면 따옴표 자체는 제외되고 그 안의 실제 값만 테이블에 깔끔하게 저장됩니다.