sqlite コマンドでCSVデータからデータをインポートする

sqlite コマンドでCSVデータからデータをインポートする

sqliteで、コマンドでCSVデータからデータをインポートする手順を記述してます。モードをCSVモードに変更してからインポートします。ここでは、実際に実行した結果を掲載してます。

環境

  • OS windows11 home
  • sqlite 3.37.1
  • DB Browser for SQLite 3.12.2

手順

コマンドでCSVデータからデータをインポートするには、「csv」モードに変更して、「.import」で「csv」ファイルと「テーブル」を指定します。

.mode csv

.import csvファイルのパス テーブル名

実際に、以下のテーブルとCSVファイルをDBと同じ階層に用意して実行してみます。

sqlite> select sql from sqlite_master where type='table' and name='sampletbl'; 
sql
"CREATE TABLE sampletbl(id integer, name text, age integer)"

sqlite> select * from sampletbl;
        id        name  age
----------  ----------  ---
         1        taro  10
         2      humiko  20
         3      saburo  30
         4        siro  40
         5        goro  50 
         6      rokuko  60

csvファイル「test.csv」

7,nanako,70
8,hati,80
9,kutaro,90

「mode」を変えて取り込みます。

sqlite> .mode csv
sqlite> .import test.csv sampletbl

確認してみると、データが追加されていることが確認できます。

sqlite> select * from sampletbl;
id,name,age
1,taro,10
2,humiko,20
3,saburo,30
4,siro,40
5,goro,50
6,rokuko,60
7,nanako,70
8,hati,80
9,kutaro,90

元に戻す場合は「on」に指定します。

sqlite> .headers on
          
sqlite> select * from sampletbl;
        id        name  age
----------  ----------  ---
         1        taro  10
         2      humiko  20
         3      saburo  30
         4        siro  40
         5        goro  50 
         6      rokuko  60

存在しないテーブル

存在しないテーブルを指定した場合は、テーブルが作成されます。

sqlite> .import test.csv sampletbl2

sqlite> select * from sampletbl2;   
7,nanako,70
8,hati,80
9,kutaro,90