CSVをSQLのINSERT文に変換
CSVを入れれば、どのデータベースでも実行できる.sqlスクリプトに。
- PostgreSQL・MySQL・SQLite
- 列の型を自動判定
- 引用符を正しくエスケープ
- アップロードなし
1.ファイルを開く
CSVまたはTSV。ここにドラッグするか、ファイルを選択してください。
作った理由
データベースのインポートウィザードはCSVにうるさく、コマンドラインのローダーは、データベースサーバーにないことが多いファイルアクセスを必要とします。単純な.sqlスクリプトなら、クエリが動く場所ならどこでも動きます。ただし、手作業で作ると、引用符で必ずつまずきます。姓の中のアポストロフィが1つあるだけでスクリプト全体が壊れ、MySQLではエスケープされていないバックスラッシュが1つで行が壊れます。このツールは、各データベースが実際に必要とするエスケープを施してスクリプトを書き出します。
できること
- 各列の型を、そのすべての値から判定して、CREATE TABLE文を書き出します。
- 行を、指定した行数ごとにまとめた複数行のINSERT文として書き出します。
- 選んだデータベースに合わせて、MySQLのバックスラッシュも含め、名前を引用符で囲み、値をエスケープします。
- 空のセルはNULLとして書き出し、先頭にゼロがある列や非常に長い数値の列はテキストのままにします。
- 全体をトランザクションで囲めるので、途中で失敗してもデータベースは元の状態のままです。
バッチに分ける理由
1行ごとに1つのINSERTでは実行が遅く、100万行を1つのINSERTにすると、ほとんどのサーバーが受け付けられない大きさになります。1文あたり数百行なら高速で、一般的なパケットや文のサイズ制限にも収まります。サーバーがエラーを返す場合は、行数を減らしてください。
よくある質問
- どのデータベースに対応していますか?
- PostgreSQL、MySQL、MariaDB、SQLiteに対応しています。スクリプトは標準的なSQLなので、標準に沿うほかのデータベース、たとえばSQL ServerでもINSERT文なら、CREATE TABLE文に少し手を加えるだけで通ることが多いです。
- 列の型はどのように決まりますか?
- 列のすべての値から決まります。整数だけの列はBIGINT、小数は浮動小数点型、true/falseはBOOLEAN、ISO形式の日付はDATE、それ以外は先頭にゼロのある数値も含めてTEXTになります。実行前に、スクリプト内のCREATE TABLE文を編集することもできます。
- 本番のデータベースで実行しても安全ですか?
- スクリプトは1つのテーブルを作成して、そこにINSERTするだけです。ほかのスクリプトと同様に、先に内容を読んでください。プレビューにはスクリプトの冒頭が表示され、テーブル名は自由に決められます。
詳しい説明
作業はこのページで完了します。ガイドでは、ツールでは判断できない部分も含めて解説しています。
データベースなしで CSV ファイルに SQL クエリを実行する方法(2026年版)GROUP BY に Postgres は不要です。DuckDB、SQLite、q、スマホで CSV を直接クエリする方法と使い分けを紹介します。ほかのツール
- CSVファイルをブラウザで開くファイルを入れるだけ。ここで開き、ここから出ません。開く
- CSVファイルにSQLを実行データベースを入れずに、ファイルへ本物のSQLを。開く
- 複数のCSVファイルを1つに結合複数のファイルを入れて、1つのファイルを出力。列は名前で照合。開く
- CSVの重複行を削除行を特定する列として指定したものだけで、重複を判定。開く
- 2つのCSVファイルを比較追加・削除・変更を、行単位ではなくキーで照合。開く
- CSVをPDFに変換CSVを読みやすい表にレイアウトして、PDFで保存。開く
- CSVをExcelに変換途中で何も変わらない、本物の.xlsxに。開く
- CSVをJSONに変換1行が1オブジェクト、見出しがキーに。開く
- JSONをCSVに変換ツリー構造を、どこでも開ける表に。開く
- ExcelをCSVに変換ブックのすべてのシートを、きれいなUTF-8のCSVに。開く
- CSVファイルを分割大きすぎて使えない1つのファイルを、使いやすい複数に。開く
- 乱れたCSVをクリーンアップGermany、germany、「Germany 」が、再び1つの値に。開く