最近Flutterでアプリを作るにあたりSQLiteでDBを用意したのですが、スプレッドシートに事前に入力しておいたデータをそのまま使いたかったのでそのやり方を記します。
前提情報
- スプレッドシートやエクセルから直接インポートするのはかなり面倒なのでCSVファイルにしておきましょう
- 既存のdbファイルにCSVデータを追記することは出来ません。新規でテーブルを作成する必要があります。
- 当方Mac PCのためそれに準じたやり方をご紹介しています。
1.dbファイルを作成&SQLへ接続
まずはコマンドライン(Macの場合ターミナル)を起動し、dbファイルを作成&同時にSQLに接続。
sqlite3 {任意のdbファイルまでのパス}/{任意のdbファイル名}.db
例)
sqlite3 /Users/taro/Documents/database.db
(成功するとコマンドライン上に sqlite>
と表示されるようになる。)
これでSQLへ接続すると同時に {任意のdbファイル名}.db` が新規作成される。
2.テーブル作成
新規にテーブルを作成。
create table {任意のテーブル名}(
{任意のカラム名} {任意の型},
{任意のカラム名} {任意の型},
{任意のカラム名} {任意の型} ...);
例)
create table myTable(
id integer,
name text,
imagePath text,
description text);
成功していれば、 .schema {任意のテーブル名}
で作成されたテーブルが表示されます。
3.CSVをインポート
.modeコマンドで表記をcsvに変更。
.mode csv
.importコマンドでインポートしたい対象のcsvファイルと、さっき作ったインポート先のテーブル名を指定。
.import {csvファイルへのパス} {さっき作ったテーブル名}
例)
.import /Users/taro/Documents/database.csv myTable
成功していれば、 SELECT * from {任意のテーブル名};
でインポートされたデータが一覧表示されます。
終わったら .quit
または ctrl + C
で接続を切りましょう。
余談
DB Browser for SQLite というデスクトップアプリのGUIがありまして、これを使うとdbファイルをアプリ上で見れます。
csvのインポート機能もあるようです。カラム数が少なければこっちのほうが楽にできそうです。
ちなみにFlutterアプリの場合、dbファイルにヘッダー情報などの余計なデータが入っていたり、データの型が完全一致してなかったりするとエラーを吐かずして何も表示されなくなるので要注意。
もし、
「プログラミングを体系的に学びたい」
「エンジニア転職を頑張りたい」
「独学に限界を感じてきた...」
「コミュニティで仲間と共に学びたい」
などと感じられたら、ぜひ検討してみてください。
まずは様子見...という方は、公式LINEにぜひご登録下さい。
学習や転職ノウハウに関する豪華特典11個を無料配布しています!
LINE紹介ページで特典を確認する