最近Flutterでアプリを作るにあたりSQLiteでDBを用意したのですが、スプレッドシートに事前に入力しておいたデータをそのまま使いたかったのでそのやり方を記します。

前提情報

  1. スプレッドシートやエクセルから直接インポートするのはかなり面倒なのでCSVファイルにしておきましょう
  2. 既存のdbファイルにCSVデータを追記することは出来ません。新規でテーブルを作成する必要があります。
  3. 当方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紹介ページで特典を確認する


■YouTube(SiiD受講生さま実績)

■YouTube(セイト先生メイン)

■X(旧Twitter)