sqlite3にcsvからデータをインポートする

sqlite3にcsvからデータをインポートするちょっと前からやってみたかったこと。csvからSQLite3にデータをインポートする。それだけ。

dbを作成する

とりあえず、テーブルとdbを作ります。

インポート用のファイルを作成

$ touch import.sql

開いて簡単な定義を書く。

create table countries (
  id integer primary key,
  name text
);

sqliteでdbを作成して、importする

$ sqlite3 earth.db
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .import import.sql
Error: unknown command or invalid arguments:  "import". Enter ".help" for help
sqlite> .read import.sql
 
sqlite> .schema
CREATE TABLE countries (
  id integer primary key,
  name text
  color text
);

ここにcsvからデータを入れてみたいと思います。

csvからインポートする

入れるのはこれ、

0,Japan,red
1,US,blue
2,Britain,yellow
3,France,purple
4,Germany,green
5,China,orange
6,India,brown

シンプル。

区切り文字を調べて変更する。

sqlite> .show
     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width:
sqlite> .separator ,
sqlite> .show
     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: ","
    stats: off
    width:

インポートして、テーブルに入ったことを確認。

sqlite> .import countries.csv countries
sqlite> .headers on
sqlite> select * from countries;
id,name,color
0,Japan,red
1,US,blue
2,Britain,yellow
3,France,purple
4,Germany,green
5,China,orange
6,India,brown
sqlite> .header on
sqlite> select * from countries;
id,country,color
0,Japan,red
1,US,blue
2,Britain,yellow
3,France,purple
4,Germany,green
5,China,orange
6,India,brown

できた!

参考

Pocket
LINEで送る

You may also like...