우편번호 DB MySQL로 임포트하기

감사하게도 http://www.zipfinder.co.kr/ 에서 편리하게 사용가능한 다양한 형식의 우편번호 데이터베이스 파일을 제공해주고있다. 단순 CSV라서 우체국에서 주는것보다 가공하기 편하게 되어있는 편이다.
여기서는 Type 1 우편번호 DB를 기준으로 설명하도록 한다.

  1. CSV형태와 통일하게 임포트할 빈 테이블 먼저 생성

     CREATE TABLE `korea_zipcode` (
       `zipcode` char(7) DEFAULT NULL,
       `sido` char(4) DEFAULT NULL,
       `gugun` char(17) DEFAULT NULL,
       `dong` char(52) DEFAULT NULL,
       `bunji` char(17) DEFAULT NULL,
       `seq` int(5) DEFAULT NULL
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  2. 다음은 탭문자로 구분되어있는 CSV형태의 텍스트를 MySQL로 임포트하는 SQL구문은 다음과 같다.

     LOAD DATA LOCAL INFILE '/example_path/zipcode.txt' INTO TABLE korea_zipcode CHARACTER SET 'euckr' FIELDS TERMINATED BY '\t' IGNORE 1 LINES;

    쿼리를 보면 CSV파일의 절대경로가 들어가고, CSV파일의 인코딩은 euckr로 되어있고, 탭문자 \t로 구분이되며, 첫라인은 헤더이므로 무시해야 한다는 것을 말하고 있다.