FORMAT COMPARISON
SQLite database vs CSV
SQLiteはテーブル・索引・スキーマなどを保持するリレーショナルデータベースのファイルです。CSVは行と列の値を交換するテキストで、単独ではデータベースの関係や制約を持ちません。
SQLite databaseとCSV、どちらを選ぶ?
SQL検索、複数テーブル、索引、制約、トランザクションが必要ならSQLiteを使います。単一の表を別アプリへ渡すならCSVへ書き出します。CSV変換では対象テーブル、列名と型、NULLと空文字、文字コード、先頭ゼロ、日付、引用符を明示し、必要な構造を別途記録してください。
SQLite database向き
SQLite対応アプリのローカルデータベース・小規模から中規模のアプリ内データ保存
- サーバーを別途運用せずSQLデータベースを使う
- データベースとアプリデータを一緒に管理する
CSV向き
表データ交換
- 単一シートの表をアプリ間で受け渡す用途
- 書式を必要としない集計前のデータ
基本情報を比較
SQLite databaseとCSVの主な違いを確認できます。
| 項目 | SQLite database | CSV |
|---|---|---|
| 拡張子 | .sqlite、.sqlite3、.db | .csv |
| MIME Type | text/csv | |
| 主な用途 | SQLite対応アプリのローカルデータベース・小規模から中規模のアプリ内データ保存 | 表データ交換 |
| 圧縮 | none | 該当なし |
| 開く方法 | SQLite対応のデータベースツールやsqlite3コマンドで開きます。通常のテキストエディタで直接編集せず、必要に応じてアプリを停止するかSQLiteのバックアップ機能を使います。 | 表計算ソフトではインポート時に文字コードと区切り文字を指定し、テキストエディタでは実際の値を確認します。先頭ゼロ、日付に見える値、長い数値は自動変換されないか確認し、必要な列を文字列として扱います。 |
| 書き出し・変換 | CSVなどへ書き出す場合は、テーブルごとにデータ型、文字コード、NULL値を確認します。SQLダンプへの変換では、データベース固有の機能や拡張が再現できるか確認します。 | XLSXからCSVへ書き出すと、通常は選んだ一つのシートの値だけになります。数式、書式、複数シート、グラフは別途保持します。 |
用途別の選び方
作りたいものや使う場面から選べます。
サーバーを別途運用せずSQLデータベースを使う
SQLite対応アプリのローカルデータベース・小規模から中規模のアプリ内データ保存
SQLite database向きデータベースとアプリデータを一緒に管理する
SQLite対応アプリのローカルデータベース・小規模から中規模のアプリ内データ保存
SQLite database向き単一シートの表をアプリ間で受け渡す用途
表データ交換
CSV向き書式を必要としない集計前のデータ
表データ交換
CSV向き確認ポイント 1
SQLiteファイルにはSQLテーブルの行に加えてスキーマ、索引、ビュー、トリガーなどを格納できます。CSVは通常ヘッダーとレコードのテキストで、複数テーブル間の関係や索引・制約は表しません。
使い分け確認ポイント 2
SQLiteはSQLで選択・結合・更新でき、制約とトランザクションを扱います。CSVはアプリに読み込んで解析する必要があり、各列のデータ型やNULLの意味は受け渡し側で合意します。
使い分け選ぶ理由を詳しく
- CSVへ出すと通常は選択した表の値が中心となり、索引、制約、ビュー、トリガー、複数表の関係は移りません。SQLiteから直接コピーする場合はWAL/journalの状態に注意し、整合性のあるバックアップ手段を使います。