郵便番号データをCSVからMySQLへImport

zipcode_download_mysql日本全国の郵便番号をDatabaseに取り込んだときのMemo.

環境: CentOS 5.8, MySQL 5.5.24

郵便番号のデータはCSV形式で郵政省のOfficial SiteからDownload出来る。データ形式を参考に。

参考にしたSite.

 

DownloadしたCSVはEditorで開いてUTF8に変換してもいいし、Command Lineでも簡単に出来る。
# iconv -f=sjis -t=utf8 KEN_ALL.CSV > ken_all_utf8.csv

phpMyAdminから次のSQLを実行して、保存用のTableをMySQL上に作成。

CREATE TABLE zip_code (
    jis        varchar(10)  NULL,
    zip_old    varchar(5)   NULL,
    zip        varchar(7)   NULL,
    addr1_kana varchar(100) NULL,
    addr2_kana varchar(100) NULL,
    addr3_kana varchar(100) NULL,
    addr1      varchar(100) NULL,
    addr2      varchar(100) NULL,
    addr3      varchar(100) NULL,
    c1         int          NULL,
    c2         int          NULL,
    c3         int          NULL,
    c4         int          NULL,
    c5         int          NULL,
    c6         int          NULL
);

MySQLのConsoleにLoginして、ImportするCommandを実行。
# mysql -p -u root
> use `database-name`;
> LOAD DATA INFILE '/tmp/ken_all_utf8.csv'
> INTO TABLE `zip_code`
> FIELDS TERMINATED BY ',' ENCLOSED BY '"';

郵便番号の保守が嫌ならAPIを使うのも手。

 

< Related Posts >