01.MySQL

[MySQL]데이터 SPOOL 받기

redkite 2012. 12. 19. 15:35

데이터베이스에서 데이터를 백업을 받거나 데이터를 텍스트 형태로 저장하기 위해서는, 일반적으로 spool을 많이 사용합니다.

그런데 MySQL은 Oracle과 다르게 아래와 같이 select문을 이용하면 데이터베이스의 내용을 텍스트 파일로 내려 받을 수 있습니다.

[문법]

select (추출할 필드) into outfile (저장할 파일명) fields terminated by (필드간 구분자) lines terminated by (열과 열 사이의 구분자) from (대상 테이블);

 

추출할 필드 : 테이블의 구성요소인 필드 중에, 추출하기 원하는 필드를 나열하면 됨.
저장할 파일명 : spool 결과로 저장할 파일명을 절대경로 혹은 상대경로로 지정 함.
필드간 구분자 : 추출할 필드와 필드 간에 사용할 구분자를 지정 함. (예. csv 파일은 ; 을 사용함)
열과 열 사이의 구분자 : 테이블에 저장된 레코드와 레코드 사이을 구분하기 위한 구분자를 지정 함.
대상 테이블 : 추출할 대상 테이블 이름을 지정 함.

[예제]

select * into outfile "./output.txt" fields terminated by "|" lines terminated by "\r\n" from tbl_test;

-> tlb_test 테이블의 모든 필드를 output.txt 파일로 저장을 하는데, 각 필드의 구분은 "|" 문자를 사용하고, 열과 열 사이는 줄바꿈으로 저장하시오.

select field1, field2 into outfile "./output.txt" fields terminated by ";" lines terminated by "\r\n" from tbl_test where field3 > 100;

-> tmlb_test 테이블의 field1, field2 필드를 조건이 field3>100 인 경우에 대해서 output.txt 파일에 저장하시오. 단 각 필드의 구분자는 ";" 문자를 사용하고, 열과 열사이는 줄바꿈으로 저장하시오.