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」コマンドでヘルプが表示されますが、「.~」で色々な設定や表示が出来るようですね。

ちょっとしたアプリケーションのデータ管理方法として、役立つような気がします。

…と、ここまでやって「郵便番号はユニークなデータではない」という事を知った(異なる町名で同じ郵便番号が存在する)のですが、それはまた別のお話という事で。

今日はここまで。

コメントはまだありません。