ツールへ移動
ViewCSV
ファイルはアップロードされません

CSV から SQLite データベースを作成

orders.csv· サンプル15 行 · 8 列
値の型
文字列にするとすべての値がそのまま保たれます。判定を有効にすると、すべての値が当てはまる列は INTEGER や REAL になります。
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041悠真 吉田札幌USB-C cable179.892026-01-13paid
2001042颯太 中村名古屋USB-C cable577.862026-02-07refunded
3001043陽翔 中村東京Notebook A53172.842026-03-14paid
4001044大和 渡辺名古屋Notebook A5948.542026-04-26shipped
5001045陽翔 吉田横浜USB-C cable1·2026-05-18pending
6001046葵 山本大阪USB-C cable463.782026-06-21paid
7001047 蓮 山本 横浜Chair, ergonomic9211.492026-07-27paid
8001048陽翔 吉田札幌Coffee beans 1kg5122.042026-08-04paid
9001049湊 山本福岡Chair, ergonomic4122.112026-09-19refunded
10001050蓮 小林大阪Monitor 27"6230.792026-01-21shipped
11001051芽依 加藤神戸Desk lamp8173.372026-02-04pending
12001052陽翔 山田名古屋Notebook A56192.932026-03-06shipped
13001053陽葵 小林京都Notebook A51111.892026-04-07shipped
14001054陽葵 加藤大阪Chair, ergonomic4169.552026-05-17paid
15001043陽翔 中村東京Notebook A53172.842026-03-14paid

15 行 · 1 ファイル SQLite エンジン(WebAssembly)を assets.viewcsv.app から一度だけダウンロードして使います。データはこのタブ内にとどまります。

CSV ファイルを開くか貼り付けて、テーブル名 を確認し、SQLite をダウンロード を選びます。すべての行を収めたテーブルを 1 つ持つ .sqlite データベース ファイルが作成され、sqlite3 シェル、DB Browser for SQLite、Python など、あらゆる SQLite ライブラリでそのまま使えます。既定ではすべての列が TEXT になるため、000417 は 000417 のままです。SQLite エンジンはブラウザー内で WebAssembly として動作し、CSV がアップロードされることはありません。

CSV を SQLite に変換する手順

  1. .csv、.tsv、.txt ファイルを開くか、ツールにドロップするか、行を貼り付けます。入力 の表を確認し、必要に応じて 読み込み設定 で区切り文字、見出し行、文字コードを設定してください。
  2. テーブル名 を確認します。初期値はファイル名で、空白や記号はアンダースコアに置き換えられるため、orders 2026.csv は orders_2026 になります。
  3. 値の型、必要に応じて 主キー、空のセルを NULL として出力 するかどうかを選びます。
  4. SQLite をダウンロード を選び、ファイルを開きます。たとえば sqlite3 orders.sqlite を実行してから SELECT * FROM orders LIMIT 10; を入力します。

最初の変換時に、SQLite エンジン(WebAssembly にコンパイルした sql.js)を assets.viewcsv.app から一度だけダウンロードします。ダウンロードに失敗した場合はエラーが表示され、もう一度試すことができます。ファイルはこの端末に残ったままです。

多数のファイルを同じ設定で変換するには、一括変換:複数のファイルを変換 を選びます。各ファイルがそれぞれ、ファイル名にちなんだテーブルを持つ 1 つのデータベースになり、まとめて 1 つの ZIP としてダウンロードされます。一括変換では、各ファイルを 25 MB 以下にする必要があります。

データベースの内容

CREATE TABLE "name" (…) で作成したテーブルが 1 つ含まれます。CSV の列ごとに 1 つの列が元の順序で作られ、すべての行が 1 つのトランザクションで挿入されます。追加のインデックス、ビュー、ID の列はありません。

テーブル名と列名書かれたとおりに使われ、二重引用符で囲まれるため、空白、記号、予約語、ラテン文字以外の名前も使えます。クエリでは "order date" のように指定してください。空の見出しは Column 3、重複した見出しは name (2) になります。
すべての値を文字列のまま扱う既定の設定です。すべての列が TEXT として宣言され、各値は書かれたとおりに保存されます。
数値と true/false を判定する空でない値がすべて先頭のゼロのない整数の列は INTEGER、有効数字 15 桁以下の小数の列は REAL になります。SQLite には真偽値型がないため、true/false の列は 1 と 0 を保持する INTEGER になります。日付とそれ以外の列は TEXT のままです。
主キー省略可能です。選んだ列が PRIMARY KEY として宣言されます。その列の値は一意で空でない必要があり、条件を満たさない場合はファイルを書き出す前に処理を中止します。整数と判定されたキーは、SQLite の rowid の別名である INTEGER PRIMARY KEY になります。
空のセルを NULL として出力既定でオンです。オフにすると、空のセルは空の文字列 '' として保存されます。

CSV の引用符で囲まれた値の中の改行、引用符、コンマは、値の中にそのまま保存されます。

CSV から SQLite への変換でよくある問題

  • 主キーのところで変換が止まる。 選んだ列に、空の値か重複した値があります。CSV のチェック や CSV ビューアー で重複を探すか、別の列を選ぶか、主キー を「なし」にしてください。
  • エンジンをダウンロードできなかった。 SQLite の WebAssembly ファイルは assets.viewcsv.app から取得します。接続、ファイアウォール、コンテンツ ブロッカーを確認してから、もう一度お試しください。
  • `SUM()` が列を文字列として扱う。 その列は TEXT です。数値と true/false を判定する でもう一度変換してください。それでも文字列のままの場合は、単純な数値でない値(1,234、12 kg、007)が含まれています。SQL で CAST(total AS REAL) のように変換することもできます。
  • ファイルが大きすぎてこのツールで扱えない。 SQLite への変換は、25 MB、10万行、250 列、200万セルまでのファイルで使えます。それより大きなファイルは、大きなファイルをストリーミングで処理する CSV を SQL に変換 でスクリプトを作成し、sqlite3 で実行してください。

制限とプライバシー

CSV はブラウザーの作業画面で開ける大きさである必要があります。上限は 25 MB、10万行、250 列、200万セルです。データベースはメモリ内で作成され、1 つのファイルとして書き出されます。

エンジンはこのタブ内のバックグラウンドのワーカーで動作するため、ページの操作が止まることはなく、キャンセル で中止できます。ダウンロードされるのはエンジンのファイルだけで、CSV とデータベースがお使いの端末の外に出ることはありません。

例:受注ファイルを sqlite3 シェルで開く

先頭がゼロの ID、空の日付、2 行のメモを含む受注ファイルを、数値と true/false を判定する、テーブル名 orders、主キー に order_id を指定して変換し、sqlite3 シェルで開いた例です。total は REAL に、paid は 1/0 の INTEGER になり、order_id と shipped_on は TEXT のままです。既定の すべての値を文字列のまま扱う では 6 列すべてが TEXT になり、total は 129.50 のまま保たれます。

CSV
order_id,customer,total,paid,shipped_on,note
000417,"Okafor, Ada",129.50,true,2026-04-02,
000418,Mei Tan,15,false,,"Leave at door
side gate"
SQLite(sqlite3 シェル)
sqlite> .schema
CREATE TABLE "orders" ("order_id" TEXT PRIMARY KEY, "customer" TEXT, "total" REAL, "paid" INTEGER, "shipped_on" TEXT, "note" TEXT);

sqlite> SELECT order_id, total, typeof(total), paid, shipped_on, quote(note) FROM orders;
000417|129.5|real|1|2026-04-02|NULL
000418|15.0|real|0||'Leave at door
side gate'

よくある質問

このツールと「CSV を SQL に変換」の違いは何ですか?

このページでは、そのまま開ける完成した SQLite データベース ファイルが作成されます。CSV を SQL に変換 では、自分で実行する CREATE TABLE と INSERT のテキストのスクリプトが作成されます。SQLite のほか PostgreSQL、MySQL、SQL Server にも対応し、25 MB を超えるファイルもストリーミングで処理できます。

既存のデータベースに CSV を追加できますか?

直接はできません。変換するたびに、テーブルが 1 つの新しいデータベースが作成されます。既存のデータベースから ATTACH 'orders.sqlite' AS src; で接続し、INSERT INTO … SELECT * FROM src.orders; で行をコピーしてください。

true と false が 1 と 0 で保存されるのはなぜですか?

SQLite には真偽値のストレージ クラスがなく、真偽値は整数として扱われるためです。数値と true/false を判定する では、true は 1 に、false は 0 になります。文字列のモードでは、true と false という文字列のままです。

規格と参考資料