반응형

반응형

MySQL 문의 실행 결과를 파일에 저장하기.

 

리다이렉트로 SQL 문의 실행 결과를 텍스트 파일에 출력하기.

키보드처럼 애초부터 준비된 입력 장치를 표준입력, 디스플레이 장치처럼 애초부터 준비된 출력 장치를 표준출력이라고 합니다.

표준 입력과 표준출력 장치를 변경할 수가 있습니다. 이런 변경 작업을 리다이렉트(redirect)라고 합니다.

명령프롬프트에서 dir를 입력하면 화면에 디렉토리 목록이 나옵니다.

Dir > test.txt 라고 입력하면 디렉토리 목록을 test.txt라는 파일에 저장 됩니다.

출력 결과가 저장된 test.txt 파일은 실행한 장소에 저장되어 있습니다.

 

MySQL 명령으로 리다이렉트하기.

리다이렉트 기능을 MySQL에 사용해 보겠습니다.

명령프롬프트에 다음을 입력합니다.

mysql –u comster_user –p12345 > log.txt

 

위의 명령을 실행하면 결과가 화면에 표시되지 않고 log.txt파일에 출력됩니다.

이제 다음 명령을 실행해 봅니다.

use comster;

select * from table_01;

exit

실행 결과는 아무것도 표시되지 않습니다.

 

이제 명령프롬프트에 다음을 입력합니다.

type log.txt

Log.txt  파일에 select 한 결과가 잘 저장 되어 있음을 확인할 수 있습니다.

 

tee 명령으로 SQL 문의 결과를 파일에 저장하기.

MySQL 콘솔창에 tee 명령을 사용하면 리다이렉트와 마찬가지로 결과를 파일에 출력할 수 있습니다.

 

tee 출력할 파일명;

tee test_tee.txt

이제 빈 파일 test_tee.txt 가 생성되었습니다.

이후의 실행 결과는 화면에 표시될 뿐만 아니라 test_tee.txt파일에도 출력됩니다.

MySQL 프롬프트에 다음 명령을 입력해 봅니다.

select * from table_01;

select * from table_sales;

 

위의 명령을 실행하면 화면에도 표시되고 test_tee.txt파일에도 결과가 표시됩니다.

 

파일 출력 중지하기.

파일에 출력하는 것을 중지할 때에는 notee명령을 사용합니다

notee명령이후로는 파일로 더 이상은 출력하지 않습니다.

반응형
Posted by 컴스터
,
반응형

MySQL CSV 파일 임포트 익스포트 하기

텍스트 파일로부터 데이터 가져오기 임포트

보통 파일로부터 데이터를 입력할 때에는 CSV(Comma Separated Values)형식과 같은 텍스트 파일을 사용합니다. 이런 형식의 파일을 읽어 들이는 것을 가져오기 또는 임포트(import)라고 합니다.

 

파일 가져오기.

파일에서 데이터를 가져올 때에는 LOAD DATA LOCAL INFILE이라는 명령을 사용합니다.

 

Load data local infile ‘파일명’ into table 테이블명 옵션설정;

 

Load data local infile 명령으로 데이터 형식을 지정하는 옵션

Fields terminated by 구분문자 기본설정은 ‘\t’:

Lines terminated by 줄바꿈 문자 기본설정은 ‘\n’: 줄바꿈

Ignore 처음에 건너 뛸 행 lines 기본설정은 0

 

우선 test.csv 파일을 다음과 같이 입력한 후 생성합니다.

A1, 강백호, 41

A2, 김민우, 29

A3, 김우빈, 20

A4, 문성근, 24

A5, 박찬호, 47

A6, 이수만, 60

 

위의 레코드를 table_03에 가져오는 명령을 내려 보겠습니다.

select * from table_03;

load data local infile ‘d:/test/test.csv’

into table table_03 fields terminated by ‘,’;

select * from table_03;

 

데이터를 텍스트 파일에 내보내기 익스포트

가져오기와는 반대로 테이블에 있는 데이터를 CSV 파일 등의 텍스트 파일로 내보낼 수가 있습니다. 이처럼 데이터를 파일로 내보내는 것을 내보내기 또는 익스포트(export)라고 합니다.

명령문은 다음과 같습니다.

select * into outfile ‘파일명옵션설정 from 테이블명;

옵션 설정에는 내보내기할 텍스트 파일의 형식을 지정합니다.

 

select * into outfile ‘d:/test/export.csv’

fields terminated by ‘,’ from table_03;

 

다음과 같이 익스포트 할 때 Access denied for user 라는 오류 메시지가 나올 때 다음과 같이 해결합니다.

우선 mysql 프롬프트 에서 빠져 나와서 root로 로그인후 파일 권한을 사용자 아이디에 부여합니다.

 

use mysql;

update user set file_priv = ‘y’ where user = ‘comster_user’;

flush privileges;

 

권한을 부여한 후 다시 사용자 아이디로 로그인한 후 실행해 보겠습니다.

위와 같이 csv 파일을 잘 export 합니다.

 

내보내기한 파일의 내용은 메모장과 같은 텍스트 편집기로 확인할 수 있습니다.

여기에서는 명령 프롬프트에서 type 명령을 사용해 보겠습니다. 먼저 MySQL 콘솔창을 종료하고 명령 프롬프트에 다음 명령을 실행합니다.

 

quit;

type d:\test\export.csv

 

 

반응형
Posted by 컴스터
,


반응형