CSV→SQL変換

CSVやTSVから INSERT 文を作ります。引用符や改行を含むセルも読み取り、選んだデータベースの書き方で識別子と文字列を囲みます。

読み取り結果(先頭5行)

SQL

数値の判定は列単位です。列の全セルが数値のときだけ引用符なしにします。0123 のように先頭が0の値(郵便番号、電話番号など)は文字列のまま残します。CREATE TABLE の型は貼り付けたデータから推定した目安で、長さや制約は実際の設計に合わせて直してください。

文字列の ' は全方言で '' に二重化し、MySQL では \ も \\ にします。SQL Server の日本語などを含む文字列には N を付け、1つの INSERT にまとめる行数は上限の1000行に抑えます。PostgreSQL では " で囲んだ列名は大文字と小文字が区別されます。

データはブラウザ内だけで処理し、送信も保存もしません。文字コードや設定(MySQL の NO_BACKSLASH_ESCAPES など)で結果が変わることがあるので、本番に入れる前に必ずテスト環境で確認し、バックアップを取ってください。

CSV→SQL変換でできること

CSVやTSVのデータから、MySQL、PostgreSQL、SQLite、SQL Server 用の INSERT 文を作ります。テスト用データの投入やちょっとしたデータ移行の下書きに使えます。

使い方

  1. 「CSV / TSV を貼り付け」に入れるか、「ファイルを選ぶ」で読み込みます。ファイルは UTF-8 か Shift_JIS を判定します。
  2. 「テーブル名」「データベース(方言)」「区切り文字」を選びます。区切り文字は自動判定もできます。
  3. 「先頭行を列名として使う」「空のセルを NULL にする」「数値の列を自動判定して引用符なしで出す」「CREATE TABLE も併記する」を必要に応じて切り替えます。
  4. 「まとめる行数」で1つの INSERT 文に入れる行数を決めます。1にすると1行ずつの INSERT になります。
  5. 「読み取り結果」で列と型を確かめ、「SQLをコピー」か「.sql をダウンロード」で取り出します。

計算の仕組みと注意点

よくある質問

セルの中に改行やカンマがあるCSVも変換できますか?

できます。ダブルクォートで囲まれたセルの中の改行やカンマは、セルの一部として読み取ります。「読み取り結果」の表で列がずれていないか確かめられます。

郵便番号の先頭の0が消えませんか?

先頭が0の数字を含む列は文字列として引用符で囲むので、0は消えません。列の全セルが数値でないと引用符なしにはしません。

Excel で保存したCSVが文字化けします。

「ファイルを選ぶ」で読み込むと、UTF-8 として読めないファイルを Shift_JIS として読み直します。読み込んだ文字コードはボタンの横に表示されます。

バルクINSERTは何行ごとにするのがよいですか?

決まりはありませんが、数百から1000行程度がよく使われます。「まとめる行数」で変えられます。接続先の上限やトランザクションの設定によって適切な値が変わるので、テスト環境で確かめてください。