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

MySQL과 데이터 파일 간 데이터 전송 방법: LOAD DATA INFILE과 SELECT ... INTO OUTFILE

MySQL과 데이터 파일 간의 정보 전송이란 데이터 파일에서 데이터베이스로 데이터를 가져오는 것(임포트) 또는 데이터베이스에서 데이터 파일로 데이터를 내보내는 것(익스포트)을 의미합니다. MySQL은 이러한 작업을 수행하기 위해 두 가지 SQL 문을 제공합니다.

1. LOAD DATA INFILE

LOAD DATA INFILE 문은 데이터 파일로부터 데이터베이스로 데이터를 가져올 때 사용합니다. 파일에 저장된 데이터 레코드를 직접 읽어 들여 테이블에 삽입하며, 대량의 데이터를 빠르게 적재할 때 특히 유용합니다. 기본 문법은 다음과 같습니다.

문법

LOAD DATA LOCAL INFILE '[경로/][파일명]' INTO TABLE [테이블명];

각 요소의 의미는 다음과 같습니다.
- 경로(path): 파일이 위치한 디렉터리 주소
- 파일명(file_name): 가져올 .txt 파일의 이름
- 테이블명(table_name): 데이터가 로드될 대상 테이블

참고로 LOCAL 키워드를 사용하면 클라이언트 측 파일에서, 생략하면 서버 측 파일에서 데이터를 읽어 옵니다.

사용 예시:

LOAD DATA LOCAL INFILE 'C:/data/student.txt' INTO TABLE student;

2. SELECT ... INTO OUTFILE

SELECT ... INTO OUTFILE 문은 데이터베이스의 데이터를 파일로 내보낼 때 사용합니다. SELECT 쿼리의 실행 결과를 지정한 파일에 그대로 기록하며, 테이블 데이터를 백업하거나 다른 시스템으로 옮길 때 자주 활용됩니다. 기본 문법은 다음과 같습니다.

문법

SELECT ... INTO OUTFILE '[경로/][파일명]' FROM [테이블명];

각 요소의 의미는 다음과 같습니다.
- 경로(path): 결과 파일이 저장될 디렉터리 주소
- 파일명(file_name): 생성될 .txt 파일의 이름
- 테이블명(table_name): SELECT 문으로 데이터를 조회할 테이블

사용 예시:

SELECT * INTO OUTFILE 'C:/data/student_backup.txt' FROM student;

두 구문의 관계

앞서 살펴본 두 구문은 서로 보완적인 관계입니다. LOAD DATA INFILE은 데이터 파일에서 데이터베이스로 데이터를 이동시키고, SELECT ... INTO OUTFILE은 데이터베이스에서 데이터 파일로 데이터를 이동시킵니다. 즉, 두 구문 모두 MySQL과 외부 파일 간의 데이터 전송을 담당한다는 공통점을 가지며, 이를 조합하면 데이터 백업·복원 및 시스템 간 데이터 마이그레이션 작업을 손쉽게 처리할 수 있습니다.