2017年7月20日

sqlite3のDBにCSVファイルをインポートする方法です。

以下の説明は、CSVファイルがあり、DB、tableが無い状態での記載です。

操作手順

1.データのCSVファイルを作成します。
項目は、「NO、日付、メモ」となっています。

以下は、サンプルデータです。先頭行の見出し項目は、ここでは不要。(見出し項目が面倒!)

ーーCSVデーターーー ファイル名:data_xx.csv
1,20170701,AAA
2,20170702,BBB
3,20170703,CCC
4,20170704,DDD
5,20170705,EEE
ーーーーーーーーーー

2.以下は、Macを使用した操作になります。
ターミナルを開いて、作業を行うフォルダ(カレントフォルダ)に移動します。

ターミナル画面で以下のコマンドを入力します。
デスクトップのフォルダ「sqlite3_xx」を使用する場合

$cd /users/******/Desktop/sqlite3_xx

作業を行うフォルダのフォルダをドラッグしてターミナル画面にドロップすることも可能です。

3.sqlite起動時にDB名を指定します。一般的な名称は「XXXXXXXX.db」で存在していなくてもOKです。
DB名:data123.dbを使用する場合

$sqlite3 data123.db 

4.作成するテーブル名とテーブルの項目名を指定します。

DB名:data123.db
テーブル名:table234 項目(No,Date,Note)
csvファイルをインポートする処理

sqlite3>create table table234(No,Date,Note);①
sqlite3>.separator ,②
sqlite3>.import /users/******/Desktop/sqlite3_xx/data_xx.csv table234 ③
sqlite3>.exit ④

テーブル、項目を定義してテーブルを作成します。
②インポートデータの項目区切り文字(カンマ)を指定します。ドット(.)も必要です!
③インポート処理を行います。INPUTファイルは、フォルダをつまんでドラッグ&ドロップが可能です。
④エラーが出ていなければ、ターミナルを終了します。

8.GUIツールで、sqlite3のデータを確認します。
 GUIツールの操作は、割愛しています。

ポイント
 ・csvファイルの項目名とテーブルの項目数が不一致のときはインポートできません
 ・テーブルの各種設定(属性変更、キー部設定、Null、自動ナンバーリングなど)は、GUIツールでも対応可能です。未設定の場合、テキスト形式で作成されます。