2006年09月22日(金) [過去の今日]
#2 郵便番号データをDBに突っ込んでみた
ちょっと作業中にダミーデータが欲しくなって、 郵政公社の郵便番号データ をPostgreSQLに突っ込んでみたのでメモ。
$ echo 'create table zipcode(id SERIAL PRIMARY KEY, jisx040x VARCHAR, oldzip VARCHAR, zipcode VARCHAR, prefecture_pro VARCHAR, city_pro VARCHAR, town_pro VARCHAR, prefecture VARCHAR, city VARCHAR, town VARCHAR, dupli smallint, subdivide smallint, numdivide smallint, unit smallint, renew smallint, reason smallint);' | psql $ nkf --unix <ken_all.csv |\ perl -e 'while(<>){ chomp; @line = split(/,/, $_); printf("INSERT INTO zipcode VALUES(DEFAULT,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);\n", $line[0],$line[1], $line[2], $line[3], $line[4],$line[5], $line[6], $line[7], $line[8], $line[9],$line[10], $line[11], $line[12], $line[13], $line[14]);}' |\ sed -e s/\"/\'/g | psql $ echo "select zipcode,town from zipcode where city = 'さいたま市大宮区';" | psql zipcode | town ---------+---------------------- 3300800 | 以下に掲載がない場合 3300841 | 東町 3300834 | 天沼町 3300852 | 大成町 3300836 | 大原 3300855 | 上小町 3300843 | 吉敷町 3300835 | 北袋町 3300851 | 櫛引町 3300854 | 桜木町 3300844 | 下町 3300805 | 寿能町 3300842 | 浅間町 3300846 | 大門町 3300803 | 高鼻町 3300801 | 土手町 3300845 | 仲町 3300853 | 錦町 3300804 | 堀の内町 3300856 | 三橋 3300802 | 宮町 (21 rows)
うむ、OK。本来booleanであるべき箇所もあるが、けっこうどうでもいいデータだし、クォートしないとboolean表現にならないとかめんどいのでsmallint。
(@877)