CSV/JSON→SQL INSERT文生成ツール
CSVまたはJSON配列を貼り付けると、テーブル名とSQL方言に合わせたINSERT文を生成します。数値・真偽値・文字列を自動判定し、CREATE TABLE文も出力できます。生成したSQLの整形は SQL整形、元データの形式変換は CSV⇔JSON変換 もご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
カラムの型
空欄なら推定した型(薄字)を使います。型は直接入力するか、候補から選べます。INSERT文の値の書き方は変わりません。
注意事項
- 型の推定は列全体の値から行います。すべて整数なら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文あたりの上限にも当たりにくくなっています。
このページをシェア
