SQLite,CSVファイルからデータを読み込む(インポート)

スポンサーリンク

鍛錬 98

SQLite,CSVファイルからデータを読み込む(インポート)

CSVファイルからデータを読み込むには、.import を使用します。
 
使用方法は、以下に示す通りです。

.import “ファイル名” テーブル名
スポンサーリンク

データの区切り記号(デリミタ)の確認・設定

CSVファイルを読み込む前に、SQLite に設定されているデータの区切り記号(デリミタ)を確認・設定します。

データの区切り記号(デリミタ)を確認する

以下は、.show を使用して各種設定を確認しています。

データの区切り記号(デリミタ)を確認するには、colseparator の項目を確認します。

sqlite> 
sqlite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: "|"
rowseparator: "\n"
       stats: off
       width:

 
上記に示した通り、colseparator の項目が “|” となっています。

以下に示す通り、実際にデータを表示して確認すると、データの区切り記号(デリミタ)は | となっています。

sqlite> 
sqlite> select * from fruits;
1|apple|300
2|orange|250
3|grape|500
4|banana|350
5|peach|700

データの区切り記号(デリミタ)を設定する

今回読み込むCSVファイルの区切り記号(デリミタ)は「, (カンマ)」なので、SQLite 側もデータの区切り記号(デリミタ)を | から , に変更します。

関連記事:SQLite,データの区切り記号(デリミタ)を設定する

以下は、次の順序で実行しています。

  1. .separator でデータの区切り記号(デリミタ) を | から , に変更。
  2. .show で各種設定を確認。
sqlite> 
sqlite> .separator ,
sqlite> 
sqlite> 
sqlite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: ","
rowseparator: "\n"
       stats: off
       width:

 
上記に示した通り、データの区切り記号(デリミタ) が , に変更されました。

以下は、実際にデータを表示して確認しています。

sqlite> 
sqlite> select * from fruits;
1,apple,300
2,orange,250
3,grape,500
4,banana,350
5,peach,700

 
上記に示した通り、データの区切り記号(デリミタ) が , に変更されていることが確認できました。

スポンサーリンク

CSVファイルを読み込む

データの区切り記号(デリミタ) の設定が終了したので、CSVファイルを読み込みます。

サンプルファイル

以下は、今回 SQLite で読み込むCSVファイル、sample.csv です。

6,strawberry,550
7,watermelon,350
8,pineapple,200
9,melon,600
10,raspberry,650

実行結果

以下は、.import を使用してCSVファイル sample.csv を読み込んでいます。

読み込む際は、次の順序で実行しています。

  1. テーブル fruits を表示し、データを読み込む前の状態を確認。
  2. .import で、CSVファイル sample.csv をテーブル fruits に読み込む。
  3. テーブル fruits を表示し、データを読み込んだ後の状態を確認。
sqlite> 
sqlite> select * from fruits;
1,apple,300
2,orange,250
3,grape,500
4,banana,350
5,peach,700
sqlite> 
sqlite> 
sqlite> .import "/***/***/***/test/sqlite3/sample.csv" fruits
sqlite> 
sqlite> 
sqlite> select * from fruits;
1,apple,300
2,orange,250
3,grape,500
4,banana,350
5,peach,700
6,strawberry,550
7,watermelon,350
8,pineapple,200
9,melon,600
10,raspberry,650

 
上記に示した通り、CSVファイルのデータを読み込むことができました。

タイトルとURLをコピーしました