SQLiteにCSVデータをインポートしてみる
2010 年 1 月 28 日
| カテゴリー: LAMP奮闘記, Linux, まぎれもなくただのメモ
年頭最初の月から「月に2桁エントリ」という目標が崩れてしまいそうですが…。
最近ちょこちょこ触り始めたSQLiteですが、想像以上にしっかりしたデータベースのようで、今のところ「こんな事は出来るのかな??」という希望は全て実現出来ています。
アレコレ触ると当然やりたくなってくるのが「データのインポート」。という事で、以下CSVデータをインポートする際の手順です。
今回は郵便番号関連のデータが格納されたCSVデータ(カンマ区切り)を取り込みたかったので、zipcode.dbというファイルに以下のようなテーブルを作ってみました。
CREATE TABLE zipcode ( ZipCode TEXT NOT NULL, Prefecture TEXT NOT NULL, City TEXT NOT NULL, Address TEXT NOT NULL);
こんな構造のテーブルならDBを利用する意味はあるのか??というのは置いといて、sqlite3コマンドで以下のように実行します。
;; SQLiteにはユーザーの概念が無いそうです $ sqlite3 zipcode.db ;; 現在のステータスを確認します sqlite> .show echo: off explain: off headers: off mode: list nullvalue: "" output: stdout separator: "|" width: ;; インポート時の区切り文字を変更しておきます sqlite> .separator , ;; インポートを実行します sqlite> .import /path/to/file TABLE_NAME
これだけでインポート完了です。楽チンです。
「.help」コマンドでヘルプが表示されますが、「.~」で色々な設定や表示が出来るようですね。
ちょっとしたアプリケーションのデータ管理方法として、役立つような気がします。
…と、ここまでやって「郵便番号はユニークなデータではない」という事を知った(異なる町名で同じ郵便番号が存在する)のですが、それはまた別のお話という事で。
今日はここまで。
コメントをどうぞ
| トラックバック
