LOAD DATA 문이란?
MySQL의 LOAD DATA 문은 외부 데이터 파일에 저장된 내용을 데이터베이스로 빠르게 가져오는(import) 데 사용되는 구문입니다. 이 문은 파일에서 데이터 레코드를 직접 읽어 들여 지정한 테이블에 삽입하며, 대량의 데이터를 한 번에 처리할 때 특히 유용합니다.
기본 구문
LOAD DATA LOCAL INFILE '[경로/][파일명]' INTO TABLE [테이블명];
각 요소의 의미는 다음과 같습니다.
- path(경로): 불러올 파일이 저장된 위치(주소)
- file_name(파일명): 데이터가 담긴 .txt 파일의 이름
- table_name(테이블명): 데이터를 적재할 대상 테이블
실습 예제
개념을 쉽게 이해하기 위해 탭(tab)으로 구분된 다음 데이터가 담긴 'A.txt' 파일이 d:/A.txt 경로에 있다고 가정해 보겠습니다.
100 John USA 10000 101 Paul UK 12000 102 Henry NZ 11000 103 Rick USA 17000 104 Corey USA 15000
이제 A.txt의 데이터를 저장할 테이블 employee_tbl을 먼저 생성합니다.
mysql> CREATE TABLE employee_tbl(
Id INT,
Name VARCHAR(20),
Country VARCHAR(20),
Salary INT
);
Query OK, 0 rows affected (0.91 sec)테이블 생성이 완료되면 다음과 같이 LOAD DATA 문을 실행하여 파일의 데이터를 테이블로 옮길 수 있습니다.
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO TABLE employee_tbl; Query OK, 5 rows affected (0.15 sec) Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
실행 결과 메시지를 보면 총 5개의 레코드가 정상적으로 적재되었으며, 삭제되거나 건너뛴 레코드는 없습니다. 실제로 데이터가 잘 들어갔는지 확인해 보겠습니다.
mysql> SELECT * FROM employee_tbl; +------+-------+---------+--------+ | Id | Name | Country | Salary | +------+-------+---------+--------+ | 100 | John | USA | 10000 | | 101 | Paul | UK | 12000 | | 102 | Henry | NZ | 11000 | | 103 | Rick | USA | 17000 | | 104 | Corey | USA | 15000 | +------+-------+---------+--------+ 5 rows in set (0.00 sec)
위 결과 집합에서 확인할 수 있듯이, A.txt 파일의 모든 데이터가 employee_tbl 테이블로 성공적으로 전송되었습니다. 이처럼 LOAD DATA 문을 활용하면 INSERT 문으로 일일이 입력하는 것보다 훨씬 빠르고 효율적으로 대용량 데이터를 데이터베이스에 적재할 수 있습니다.