本文へスキップ

CSV を SQLite に変換

CSV ファイルをドロップすると、CREATE TABLE と INSERT 文を含む SQLite 用のスクリプトができます。各列に型を付け、すべての修正を行と列とともに一覧にします。

ファイル
csvventas_2024.csvサンプルファイル、357 B
データベース

5 行を変換、修正 8 件、却下なし

表示
ventas_2024.csv の先頭の行です。修正した箇所に印が付いています
行
500412Peña MuñozMérida15/02/20241.234,50sí
600413José Ángel RuizLeón03/02/202499,90no
700414Zoë OrtízQuerétaro29/02/2024N/Así
800415Ñuño CastañedaOaxaca28/02/20247,25no
900416Iñaki OlaizolaMazatlán11/03/2024980,75sí
-- Written by IntoSQL for SQLite.

BEGIN;

CREATE TABLE ventas_2024 (
    folio TEXT NOT NULL,
    cliente TEXT NOT NULL,
    ciudad TEXT NOT NULL,
    fecha DATE NOT NULL,
    importe NUMERIC(6,2),
    pagado BOOLEAN NOT NULL
);

INSERT INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES
('00412', 'Peña Muñoz', 'Mérida', '2024-02-15', 1234.50, 1),
('00413', 'José Ángel Ruiz', 'León', '2024-02-03', 99.90, 0),
('00414', 'Zoë Ortíz', 'Querétaro', '2024-02-29', NULL, 1),
('00415', 'Ñuño Castañeda', 'Oaxaca', '2024-02-28', 7.25, 0),
('00416', 'Iñaki Olaizola', 'Mazatlán', '2024-03-11', 980.75, 1);

COMMIT;

修正

  1. ファイルは windows‑1252 で書かれていたため、UTF-8 に変換しました。
  2. ヘッダーは 4 行目にあります。その上の行は含めていません。
  3. 10 行目 ("TOTAL") は合計のため、含めていません。
  4. "Folio" の先頭のゼロを保持しました。00412 は 00412 のまま、テキストとして保存します。
  5. 15/02/2024 から "Fecha" の日付は日が先とわかるため、03/02/2024 は 2024‑02‑03 として読み取ります。
  6. "Importe" の数値は小数点にカンマを使っています。1.234,50 は 1234.50 として読み取ります。
  7. "Importe" の N/A を空として読み取りました(5 件中 1 件)。
  8. "Pagado" には「はい/いいえ」の語 (sí, no) があるため、ブール値として保存しました。

ファイルはこのコンピューター上で変換され、アップロードされることはありません。

その他のサンプル:

CSV から SQLite へ、列ごとに

上のサンプル ventas_2024.csv を IntoSQL が SQLite 用に書き出した結果です。各列のファイル内の内容、付く型、最初の値がスクリプトでどうなるかを示します。

ファイル内最初の値列SQLite の型スクリプト内
Folio00412folioTEXT'00412'
ClientePeña MuñozclienteTEXT'Peña Muñoz'
CiudadMéridaciudadTEXT'Mérida'
Fecha15/02/2024fechaDATE'2024-02-15'
Importe1.234,50importeNUMERIC(6,2)1234.50
PagadosípagadoBOOLEAN1

スクリプトを SQLite に読み込む

ダウンロードされるのは普通の .sql ファイルです。SQLite 付属のツールで実行してください。

ターミナルから

sqlite3 ventas_2024.db < ventas_2024.sqlite.sql

データベースファイルがなければ作成されます。コンバーターでは、コマンドを使わずにそのまま使える .sqlite データベースもダウンロードできます。

データベースツールから

DB Browser for SQLite では、Execute SQL を選び、スクリプトを開いて実行します。

スクリプトを使わずに

コマンドラインなら、ファイルを SQLite データベースに直接読み込めます。スクリプトを書き出す必要はなく、無料です。

intosql load ventas_2024.csv --into ventas_2024.db

CSV ファイルと SQLite について知っておくこと

IntoSQL が CSV ファイルから読み取るもの

  • Windows-1252 や UTF-16 を含め文字コードを判別するので、アクセント記号や ñ もそのまま届きます。
  • 区切り文字を判別します。カンマ、セミコロン、タブ、縦線に対応しています。セミコロン区切りでは、1.234,50 のような小数点のカンマを数値として読み取ります。
  • 引用符で囲まれた値には、区切り文字や改行を含められます。

SQLite について知っておくこと

  • 各列には値に必要な型が付きます。INTEGER、NUMERIC、TEXT、DATE、BOOLEAN などで、はい/いいえは 1 と 0 として保存されます。
  • 15 桁を超える小数は TEXT のままなので、丸めで失われる桁はありません。
  • SQLite のスクリプト、またはブラウザ上で作成された .sqlite データベースをダウンロードできます。

SQLite で各種類の値がどう保存されるか

値SQLite
はい/いいえBOOLEAN
整数INTEGER
大きな整数INTEGER
小数NUMERIC(p,s)TEXT
浮動小数点数REAL
日付DATE
時刻TIME
日付と時刻DATETIME
日付と時刻、時差付きDATETIME
テキストTEXT

CSV から SQLite への変換に関する質問

ここに答えがない場合は、お問い合わせページからご連絡ください。担当者が返信します。 お問い合わせページ

CSV を SQLite に変換するには?

このページ上部のコンバーターにファイルをドロップしてください。ヘッダーを見つけ、すべての値を読み取り、行った修正を一覧にしながら SQLite 用のスクリプトを書き出します。スクリプトをダウンロードし、sqlite3 で実行してください。

CSV の区切りがセミコロンやタブの場合は?

区切り文字はカンマ、セミコロン、タブ、縦線から自動で検出されます。「その他のオプション」で指定することもできます。セミコロン区切りでは、1.234,50 のような小数点カンマも数値として読み取ります。

SQLite ではどの型を使いますか?

はい/いいえの値は BOOLEAN、整数は INTEGER、小数は NUMERIC(p,s)、日付は DATE、時刻付きの日付は DATETIME、テキストは TEXT になります。サイズは各列の最も長い値から決まります。

SQLite で先頭のゼロは残りますか?

はい。00412 のようなコードはテキストのまま扱われるため、SQLite では TEXT として保存され、スクリプトには '00412' と書かれます。

スクリプトを使わずに SQLite にデータを読み込めますか?

はい、無料でできます。intosql load が SQLite データベースファイルを作成し、行を読み込みます。このページのコンバーターでも、そのまま使える .sqlite データベースをダウンロードできます。

CSV ファイルはどのくらいの大きさまで扱えますか?

ブラウザは CSV を流れてくる順に読むため、数 GB のファイルも扱えます。Apple M4 のノートパソコンでは、コマンドラインが 100 万行・174 MB の CSV を 1 秒未満で変換します。