本文へスキップ
にゃんこツール

CSV/JSON→SQL INSERT文生成ツール

CSVまたはJSON配列を貼り付けると、テーブル名とSQL方言に合わせたINSERT文を生成します。数値・真偽値・文字列を自動判定し、CREATE TABLE文も出力できます。生成したSQLの整形は SQL整形、元データの形式変換は CSV⇔JSON変換 もご利用ください。

🔒 ブラウザ内で完結・入力データはサーバーに送信されません

注意事項

  • 型の推定は列全体の値から行います。すべて整数ならINT/BIGINT、小数を含めばDOUBLE、true/falseだけならBOOLEAN、それ以外は文字列です。先頭ゼロの値(007など)や、18桁を超える整数は文字列として扱います。
  • テーブル名・カラム名は常に引用符で囲みます(MySQLはバッククォート、SQL Serverは角括弧、PostgreSQL・SQLite・Oracleはダブルクォート)。SQL Serverの文字列はNプレフィックス付き(N文字列)で出力します。「schema.table」はドットで分割してそれぞれ引用します。
  • JSONでは、ネストしたオブジェクト・配列はJSON文字列として挿入します。キーが無い行はNULLになります。数値は一度JavaScriptの数値として読み込むため、桁数の大きい値は精度が落ちることがあります。
  • 複数行VALUESは1,000行ごとに別のINSERT文へ分割します(SQL Serverの1文あたり上限に合わせています)。Oracleは複数行VALUESが使えないためINSERT ALL形式で出力し、空文字列がNULLとして扱われる点にもご注意ください。生成したSQLは本番DBへ流す前に、必ずテスト環境で確認してください。

用語解説

INSERT文

テーブルに新しい行を追加するSQL文です。INSERT INTO テーブル名 (カラム…) VALUES (値…) の形で書きます。

複数行VALUES

1つのINSERT文にVALUES句を複数並べて、まとめて行を追加する書き方です。1行ずつ実行するより高速になりやすい一方、1文が長くなりすぎるとDBの上限に当たることがあります。

SQL方言

DBごとの文法の違いです。識別子の引用符(MySQLはバッククォート、PostgreSQLとSQLiteはダブルクォート)や、真偽値・型の名前が異なります。

NULL

「値が存在しない」ことを表すSQLの特別な値です。空文字列とは別物として扱われます。

よくある質問

カラムの型はどのように推定されますか?

列全体の値を見て判定します。すべて整数ならINT(桁数が多ければBIGINT)、小数を含めばDOUBLE、true/falseだけならBOOLEANです。それ以外や、先頭ゼロの値(郵便番号や電話番号など)は文字列になります。

空欄はNULLと空文字列のどちらになりますか?

既定ではNULLです。「空欄をNULLにする」をオフにすると空文字列('')になります。JSONではnullや存在しないキーがNULLになります。

SQL方言ごとに出力はどう変わりますか?

識別子の引用符(MySQLはバッククォート、SQL Serverは角括弧、他はダブルクォート)、型名、真偽値の書き方(SQLite・SQL Server・Oracleは1/0)が変わります。MySQLは文字列中のバックスラッシュもエスケープし、SQL Serverは文字列をN'…'形式、Oracleは複数行をINSERT ALLで出力します。

大量の行を変換しても大丈夫ですか?

処理はブラウザ内で行うため、行数はブラウザのメモリ次第です。複数行VALUESは1,000行ごとに別のINSERT文へ分割するので、DB側の1文あたりの上限にも当たりにくくなっています。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる