目次
1. CSVデータのインポート手順
Windowsはコマンドライン、MacはターミナルからSQLiteに接続して次のコマンドを実行します。
コマンド
.mode csv
.import CSVファイルのパス テーブル名
.import CSVファイルのパス テーブル名
.mode csv
値の区切りをカンマに変更します。
.import CSVファイルのパス テーブル名
インポートを実行します。
実行例
productテーブルにデータをインポートします。
productテーブルの内容
1 2 3 4 5 |
CREATE TABLE IF NOT EXISTS product ( id INTEGER PRIMARY KEY, name TEXT, price INTEGER NOT NULL ); |
インポートするCSVデータ(import_data.csv)
1 2 3 |
1,商品A,1000 2,商品B,3000 3,商品C,5000 |
インポートを実行
1 2 |
sqlite> .mode csv sqlite> .import import_data.csv product |
インポート結果を確認
1 2 3 4 |
sqlite> select * from product; 1,"商品A",1000 2,"商品B",3000 3,"商品C",5000 |
CSVファイルのデータが productテーブルにインポートされていることが分かりました。
2. インポートの注意事項
SQLiteでは、インポート先のテーブルが存在しない場合、エラーにならず正常終了します。
インポート先のテーブルが存在しない場合、次の動作となります。
・インポートデータの1行目 を列データとみなして、自動的にテーブルを作成します。
・テーブルには2行目以降のデータが登録されます。
ためしに、productテーブルを作成しないで、先ほどのCSVデータをインポートした結果は次のようになります。
1 2 3 |
sqlite> SELECT * FROM product; 2,"商品B",3000 3,"商品C",5000 |
select すると、1行目のデータが登録されていないことが分かります。
select 結果に列を表示してみると
1 2 3 4 5 |
sqlite> .headers on sqlite> SELECT * FROM product; 1,"商品A",1000 2,"商品B",3000 3,"商品C",5000 |
1行目のデータが列名として使用されていることが分かります。
インポート先のテーブルが存在しなくても、エラーにならず正常終了してしまうため、インポート前にテーブルが存在するか確認することをオススメします。