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

MySQL 테이블의 모든 데이터를 텍스트 파일로 내보내는 방법

MySQL에서 테이블의 전체 데이터를 텍스트 파일로 내보내려면 SELECT ... INTO OUTFILE 문을 사용하면 됩니다. 이 문장은 쿼리 결과를 서버의 지정된 경로에 있는 파일로 그대로 저장해 주기 때문에, 데이터 백업이나 다른 시스템으로의 이관 작업에 매우 유용합니다.

예제

먼저, 아래와 같은 데이터가 담긴 Student_info 테이블이 있다고 가정해 보겠습니다.

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| 130  | Ram     | Jhansi     | Computers  |
| 132  | Shyam   | Chandigarh | Economics  |
| 133  | Mohan   | Delhi      | Computers  |
+------+---------+------------+------------+
6 rows in set (0.07 sec)

이제 다음과 같은 쿼리를 실행하면 Student_info 테이블의 모든 데이터를 student.txt라는 파일로 내보낼 수 있습니다.

mysql> Select * from student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student.txt';
Query OK, 6 rows affected (0.01 sec)

위 쿼리를 실행하면 지정한 경로에 student.txt 파일이 생성되고, Student_info 테이블의 모든 데이터가 해당 파일에 저장됩니다.

참고 사항

INTO OUTFILE을 사용할 때는 몇 가지 주의할 점이 있습니다.

  • 출력 파일은 MySQL 서버가 실행 중인 호스트 머신에 생성되며, 클라이언트 PC가 아닙니다.
  • 동일한 이름의 파일이 이미 존재하면 보안상의 이유로 쿼리가 실패합니다. 기존 파일을 덮어쓰지 않으므로, 미리 삭제하거나 새로운 파일명을 사용해야 합니다.
  • 서버 설정 변수인 secure_file_priv에 지정된 디렉터리 안에서만 파일을 생성할 수 있습니다. 위 예제에서는 C:/mysql/bin/mysql-files/가 그에 해당합니다.
  • 탭 구분 등 출력 형식을 바꾸고 싶다면 FIELDS TERMINATED BY, LINES TERMINATED BY 같은 옵션을 추가로 활용할 수 있습니다.