コマンドでMySQLに郵便番号データを入れる
2014/05/17
練習としてコマンドから郵便番号データを入れた際のメモ。
---------
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というコマンドを使うらしいが
これまた入っていなかった。
でインストールできた。
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で特定カラムの<br>タグを改行コードに一括置換したかった ...
-
MySQLのREGEXPで半角記号を検索したい場合
MySQLのREGEXPで半角記号を検索したい場合 \\を付けてエスケープしない ...
-
MySQLでテーブル構造とデータをコピーする
MySQLで既にあるテーブルとデータに対して実験を行う必要があった。本番テーブル ...
-
MySQLでdatetime型データの〇日後を取得する方法(DATEDIFF)
MySQLでdatetime型データがあり、何日経過しているかを取得し、〇日経過 ...
-
プリペアドステートメント
個人的に得た内容として、SQL文だけ先にDBに送って、 変数は後で送る。だからS ...