【MySQL】ある郵便番号データ取り込みの風景
とある郵便番号データ取り込みのメモです。
CSVをダウンロードしてくる
郵政公社からいただいてくる。
http://www.post.japanpost.jp/zipcode/download.html
全国のCSVと、事業所のCSVをダウンロードして、解凍する。
CSVデータをちょっと加工する(文字コード変更)
MySQLのcharacter_set_databaseに合わせる。
UTF-8などに変換する。
エディタを使うなり、nkfなどのコマンドを使うなりする。
テーブルを作る
いろいろ気になるカラム名、意味の分からないカラム名があるけど、私のせいじゃないので気にしないことにする。
CREATE TABLE `m_yubin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` varchar(5) NOT NULL, `ken_code` tinyint(4) NOT NULL, `no5` varchar(5) NOT NULL, `no` varchar(7) NOT NULL, `ken_k` varchar(20) NOT NULL, `shi_k` varchar(50) NOT NULL, `cho_k` varchar(100) NOT NULL, `ken` varchar(20) NOT NULL, `shi` varchar(50) NOT NULL, `cho` varchar(100) NOT NULL, `banchi` varchar(100) NOT NULL, `shiten` varchar(50) NOT NULL, `jigyosho_k` varchar(100) NOT NULL, `jigyosho` varchar(100) NOT NULL, `f10` tinyint(4) NOT NULL, `f11` tinyint(4) NOT NULL, `f12` tinyint(4) NOT NULL, `f13` tinyint(4) NOT NULL, `f14` tinyint(4) NOT NULL, `f15` tinyint(4) NOT NULL, `fj11` tinyint(4) NOT NULL, `fj12` tinyint(4) NOT NULL, `fj13` tinyint(4) NOT NULL, PRIMARY KEY (`id`), KEY `no` (`no`), KEY `ken` (`ken`) );
全国の郵便番号取り込み
load data infile "/tmp/KEN_ALL.txt" into table m_yubin FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '' LINES STARTING BY '' TERMINATED BY '\r\n' IGNORE 0 LINES (`code`,no5,`no`,ken_k,shi_k,cho_k,ken,shi,cho,f10,f11,f12,f13,f14,f15);
事業所の郵便番号取り込み
load data infile "/tmp/JIGYOSYO.txt" into table m_yubin FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '' LINES STARTING BY '' TERMINATED BY '\r\n' IGNORE 0 LINES (`code`,jigyosho_k,jigyosho,ken,shi,cho,banchi,`no`,no5,shiten,fj11,fj12,fj13);
県コード対応
自治体コードの上2桁をもらってくる。使用頻度が高い場合はあると便利。
update m_yubin set ken_code = substring(code,1,2);
以上!
コメント