読者です 読者をやめる 読者になる 読者になる

MySQLのデータサンプルとして郵便番号のデータを入れる

MySQL

日本郵便:郵便番号データの説明

日本郵便
こういう実用性の高いデータを公開してくれているのは
本当にありがたいですよね。

サンプルデータ取得

$ wget http://www.post.japanpost.jp/zipcode/dl/kogaki/lzh/ken_all.lzh

lzhなのでlhaとか必要

全国の郵便番号のデータをダウンロード。
スペック低いようだったら各都道府県のに限定してもいいかも。

$ lha x ken_all.lzh
$ nkf -g ken_all.csv 
Shift_JIS (CR)

Shift JISなのでUTF-8に変換。

$ nkf -w --overwrite ken_all.csv
$ nkf -g ken_all.csv
UTF-8 (CR)

MySQLで読み込む

参考:MySQL に郵便番号データをインポート

mysql> CREATE DATABASE yuubin CHARACTER SET utf8; 
mysql> use yuubin;
mysql> CREATE TABLE zipcode (
PublicCode char(5) NOT NULL,
OldZipCode char(5) NOT NULL,
ZipCode char(7) NOT NULL,
PrefectureKana varchar(10),
CityKana varchar(100),
TownKana varchar(100),
Prefecture varchar(10),
City varchar(200),
Town varchar(200),
TownDivideFlg tinyint(1),
KoazaBanchiFlg tinyint(1),
TyoumeFlg tinyint(1),
HasSomeTownFlg tinyint(1),
UpdateState tinyint(1),
UpdateReson tinyint(1),
PRIMARY KEY (ZipCode)
);
mysql> LOAD DATA INFILE './ken_all.csv' IGNORE INTO TABLE zipcode FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
mysql> 
mysql> SELECT * FROM zipcode LIMIT 10 ;
+------------+------------+---------+--------------------+--------------------------+------------------------------------------+------------+-----------------+--------------------------------------+---------------+----------------+-----------+----------------+-------------+-------------+
| PublicCode | OldZipCode | ZipCode | PrefectureKana     | CityKana                 | TownKana                                 | Prefecture | City            | Town                                 | TownDivideFlg | KoazaBanchiFlg | TyoumeFlg | HasSomeTownFlg | UpdateState | UpdateReson |
+------------+------------+---------+--------------------+--------------------------+------------------------------------------+------------+-----------------+--------------------------------------+---------------+----------------+-----------+----------------+-------------+-------------+
| 01102      | 001        | 0010000 | ホッカイドウ       | サッポロシキタク         | イカニケイサイガナイバアイ               | 北海道     | 札幌市北区      | 以下に掲載がない場合                 |             0 |              0 |         0 |              0 |           0 |           0 | 
| 01102      | 001        | 0010010 | ホッカイドウ       | サッポロシキタク         | キタ10ジョウニシ(1-4チョウメ)            | 北海道     | 札幌市北区      | 北十条西(1〜4丁目)               |             1 |              0 |         1 |              0 |           0 |           0 | 
| 01102      | 001        | 0010011 | ホッカイドウ       | サッポロシキタク         | キタ11ジョウニシ(1-4チョウメ)            | 北海道     | 札幌市北区      | 北十一条西(1〜4丁目)             |             1 |              0 |         1 |              0 |           0 |           0 | 
| 01102      | 001        | 0010012 | ホッカイドウ       | サッポロシキタク         | キタ12ジョウニシ(1-4チョウメ)            | 北海道     | 札幌市北区      | 北十二条西(1〜4丁目)             |             1 |              0 |         1 |              0 |           0 |           0 | 
| 01102      | 001        | 0010013 | ホッカイドウ       | サッポロシキタク         | キタ13ジョウニシ(1-4チョウメ)            | 北海道     | 札幌市北区      | 北十三条西(1〜4丁目)             |             1 |              0 |         1 |              0 |           0 |           0 | 
+------------+------------+---------+--------------------+--------------------------+------------------------------------------+------------+-----------------+--------------------------------------+---------------+----------------+-----------+----------------+-------------+-------------+
10 rows in set (0.00 sec)
mysql> 
mysql> SELECT CityKana FROM zipcode WHERE ZipCode = 2480006;
+-----------------+
| CityKana        |
+-----------------+
| カマクラシ      |
+-----------------+
1 row in set (0.17 sec)

mysql> 

という感じでSQLのコマンドの練習とかに使える感じです。