勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

コマンドでMySQLに郵便番号データを入れる

   2014/05/17  MySQL サーバー

練習としてコマンドから郵便番号データを入れた際のメモ。

---------

1:郵便番号データが入っているcsvを取得する

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

とコマンドを打つとダウンロードしてくれる。
ken_all.lzhというファイルがダウンロードされるけど、
解凍するのにlhaというコマンドがいるみたい。
ただ、入っていなかったのでインストールした。

wget http://iij.dl.sourceforge.jp/lha/22231/lha-1.14i-ac20050924p1.tar.gz
tar zxvf lha-1.14i-ac20050924p1.tar.gz
cd lha-1.14i-ac20050924p1
./configure && make && make install

でインストールできた。

---------

2:文字コードをshiftjs -> utf8へ変換

変換する際にnfkというコマンドを使うらしいが
これまた入っていなかった。

yum -y install nkf

でインストールできた。

nkf -w --overwrite ken_all.csv

文字コード変換。

---------

3:テーブルの作成。

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)
);

でテーブル作成。

---------

4:csvファイルをインポート

LOAD DATA INFILE './ken_all.csv' IGNORE INTO TABLE zipcode FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

を入力するも、

ERROR 13 (HY000): Can't get stat of '/hoge/huga/ken_all.csv' (Errcode: 13)

みたいなエラーが出た。
tmpフォルダ移してから再度試すと大丈夫だった。

---------

■参考サイト
http://d.hatena.ne.jp/kenjiskywalker/20120722/1342957297
http://blog.livedoor.jp/kotani08/archives/50442332.html

phpmyadminと違ってむっちゃ面倒くさかった。

 - MySQL サーバー

  関連記事

MySQLに保存したデータをJSON形式で取得する方法

MySQLに保存したデータをJSON形式で利用したいということがたまにある(Ja ...

MySQLで日時や日付で範囲検索する際に動作速度を向上させる方法

MySQLでログ系等の大量にデータが格納されているテーブルから日時や日付で範囲検 ...

MySQLで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法

phpとmysqliを使っている中で次回挿入するオートインクリメントの値と、前回 ...

MySQLで検索した件数の取得

ページングとかで必要になる総件数について、 いつもググってしまっていたのでメモ。 ...

MySQLiでSELECT文

MySQLiでSELECT文 ■データ +--+------+ | id | p ...