컴퓨터관련

텍스트, csv 파일을 import할때 쓰는 명령어...펌

맘편한넘 2010. 12. 12. 07:31
csv(','으로 분리된 형식)이나, 일반 txt 형식으로 저장된 파일을 테이블 내용으로 입력해보자.
 
1. csv는 그대로 사용하여도 무방하지만, 가급적 MySQL에 기본 설정되어 있을 UTF-8 인코딩 형식으로 저장되어 있는지를 체크하고,
   UTF-8 저장시 옵션에 BOM 저장 옵션이 있다면 꺼준다.
 
2. MySql 쿼리창을 연다.
 
3. 아래와 같이 쿼리를 입력한다.
    load data infile "C:\\Project Files\\Server_DB\\ROUTE.csv" into table table_name_input
    fields terminated by ',' optionally enclosed by ''
    lines terminated by '\n'
    (column1, column2, column3, column4)
    첫줄에는 파일의 경로를 입력, 둘째줄의 ','는 각 데이터 간의 구분자로 ','를 이용하였다는 것이다. 
    맨 아래줄에는 테이블에 입력할 값들의 컬럼을 순서대로 입력해준다.
 
4. select * from table_name_input
    select문을 이용하여 테이블에 데이터가 잘 들어가 있는지 확인해본다.
작업 하다보면 txt파일 또는 csv등의 파일들을 DB에 넣어야 할 경우가 많은데 phpmyadmin 을 쓰지 않는 이상 쿼리로 모든 것을 해야하니 이번에 작업 하나 한 김에 또 잊기전에-_- 기록 남겨놓기 :)

쿼리를 이렇게 날립시다
mysql > LOAD DATA INFILE '/경로/파일이름.txt' INTO TABLE '테이블' FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (필드1, 필드2);

이렇게 하면 /경로/파일이름.txt가 '테이블' 이라는 이름의 테이블로 입력 되는데 필드1, 필드2 라는 이름의 필드들에 해당 값이 import 됨

에러가 나와도 진행을 하기 위해서 필드 뒤에 IGNORE 1 LINES  명령어를 넣어주면 됨


작업 편하게 합시다~ :)
mysql 로그인 도 귀찮은 경우에는

$> mysql -uroot -p -e "LOAD DATA INFILE '/경로/파일이름.txt' INTO TABLE '테이블' FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (필드1, 필드2);

이렇게 처리를 해주면 로그인을 한 화면에서 다시 붙여넣기를 하지 않아도 자알 들어감..