本文へスキップ
SPCX Tools

CSV SQL 変換

CSVデータをSQLのCREATE TABLE文およびINSERT文に瞬時に変換します。

ローカルで動作 — ファイルは端末から出ません

ツールを読み込み中…

CSV SQL 変換の使い方

  1. 1入力ボックスにCSVデータを貼り付けるか、「サンプル」をクリックしてフォーマットの動作を確認します。
  2. 2対象のテーブル名を入力し、使用するデータベース(MySQL、PostgreSQL、SQLite、SQL Server)を選択します。
  3. 3オプションを切り替えて、CREATE TABLE文を含めたり、INSERT文をバッチ化したり、空のセルをNULLとして扱うように設定します。
  4. 4生成されたSQLをコピーするか、.sqlファイルとして直接ダウンロードします。

高速・安全なCSV SQL変換ツール

スプレッドシートのデータをリレーショナルデータベース形式に変換する作業は、開発者やデータベース管理者、データアナリストにとって日常的なタスクです。本ツールを使えば、Webブラウザ上で直接CSVをSQLに変換できます。新規データベースの初期データ投入、過去のデータの移行、データセットの迅速なインポートなど、どのような目的でも、CSVデータからINSERT文を数秒で生成可能です。

変換処理はすべてお使いのデバイス上でローカルに実行されるため、データが外部サーバーにアップロードされることは一切ありません。これにより完全なプライバシーとセキュリティが保証され、機密性の高いユーザーデータや財務記録、社外秘情報なども情報漏洩のリスクなく安全に処理できます。

データ型の自動推論の仕組み

カラム数が多いデータセットのスキーマを手作業で作成するのは面倒です。手間を省くため、このツールはCSVデータを自動的に読み込み、各カラムに最適なSQLのデータ型を推論します。実際のデータ値(空のセルは除外)をチェックし、以下のルールに基づいてデータ型を決定します。

  • INTEGER: カラムのすべての値が整数(例: 42、-15)の場合に適用されます。
  • DECIMAL: 値が浮動小数点数または指数表記(例: 3.14、-0.5)の場合に適用されます。
  • BOOLEAN: 値が true または false のみの場合(大文字・小文字は区別しません)に適用されます。
  • DATE: 値が標準のISO日付フォーマット(YYYY-MM-DD)に一致する場合に適用されます。
  • TEXT / VARCHAR: データ型が混在している場合や、通常のテキスト、上記のパターンに当てはまらないフォーマットの場合に適用されるデフォルトのデータ型です。

CREATE TABLE 文を生成する場合、推論されたデータ型は、選択したデータベースのSQL方言に合わせた正しい構文に自動でマッピングされます。

対応するSQLダイアレクト

データベースエンジンごとに、識別子(テーブル名やカラム名など)の囲み方、データ型の定義、リテラル値の書式ルールは異なります。生成されたSQLが構文エラーなく確実に実行されるよう、当ツールは4つの主要なダイアレクトに対応しています。

MySQL: CSVをMySQLに変換する際、ツールはテーブル名とカラム名をバッククォート(`)で囲みます。テキストカラムのデフォルトは VARCHAR(255) となり、真偽値は TRUE または FALSE として出力されます。

PostgreSQL: 識別子をダブルクォーテーション(")で囲みます。テキストカラムには、Postgresで標準的かつ非常に効率的な TEXT 型を使用します。真偽値はネイティブにサポートされており、TRUE または FALSE として出力されます。

SQLite: 識別子にダブルクォーテーションを使用します。SQLiteは限られたストレージクラスによる動的型付けを採用しているため、小数は REAL、真偽値は INTEGER(1 または 0 を出力)、テキストは TEXT アフィニティにマッピングされます。

SQL Server (T-SQL): 識別子を角括弧([])で囲みます。テキストカラムのデフォルトは VARCHAR(255) となり、真偽値は BIT 型にマッピングされます(1 または 0 を出力)。さらに、テキスト文字列に非ASCII文字が含まれる場合、Unicode(NVARCHAR)として正しく挿入されるよう、自動的に N のプレフィックス(例:N'Value')が付与されます。

SQL出力のカスタマイズ

以下の設定オプションを使用して、環境や用途に合わせて生成されるSQLスクリプトをカスタマイズできます。

  • テーブル名: ターゲットのテーブル名を指定します。選択したSQLの種類に合わせて、適切な引用符が自動的に適用されます。
  • CREATE TABLEを含める: データベースを新規作成する場合、このオプションを有効にするとINSERT文の前にテーブル定義(スキーマ)が生成されます。CSVのヘッダーがカラム名として使用されます。
  • バッチインサート: 何千もの INSERT INTO 文を個別に実行すると処理に時間がかかる場合があります。このオプションを有効にすると、最大500行のCSVデータを1つのINSERT文にまとめます。これによりファイルサイズが大幅に削減され、インポート速度が向上します。
  • 空のセルをNULLに変換: スプレッドシートには空白セルが含まれることがよくあります。このオプションを有効にすると、CSV内の空文字をデータベースに空文字('')として挿入するのではなく、SQLの NULL キーワードとして明示的に出力します。

CSVデータ準備のヒント

最適な結果を得るために、CSVファイルにはヘッダー行を含めてください。このツールは、データの1行目を CREATE TABLE や INSERT 文の列名として使用します。列名が空白の場合は、自動的に column_1、column_2 のように命名されます。

データ内にカンマ、改行、引用符が含まれる場合は、CSVが正しくフォーマットされている(通常は各フィールドをダブルクォーテーションで囲む)ことを確認してください。本ツールには高性能なCSVパーサーが組み込まれており、エスケープされた引用符や複数行のフィールドも正確に処理します。

データを他の形式に変換したい場合は、CSV JSON 変換 や CSV Excel 変換 ツールもご活用ください。生成されたSQLのインデントやキーワードの大文字・小文字を調整したい場合は、SQLフォーマッター をご利用いただけます。

よくある質問

このツールはどのようにSQLのデータ型を判定しますか?
コンバーターは各列のデータをスキャンします(空のセルは無視)。すべての値が特定のパターンに一致する場合、対応するデータ型を割り当てます。整数にはINTEGER、浮動小数点数にはDECIMAL、真偽値にはBOOLEAN、YYYY-MM-DD形式にはDATEが適用されます。データが混在している場合やパターンに一致しない場合は、デフォルトでTEXTまたはVARCHARになります。
CSVデータはサーバーにアップロードされますか?
いいえ。データの解析とSQLの生成はすべて、JavaScriptを使用してブラウザ上でローカルに処理されます。データがデバイスの外部に送信されることはないため、機密情報や社外秘のデータベースレコードでも安全にご利用いただけます。
「Batch」オプションはどのような機能ですか?
有効にすると、最大500行のデータを1つの複数行INSERT文にまとめます。これにより、生成されるSQLファイルのサイズが大幅に縮小され、データベースでスクリプトを実行する際の処理速度が向上します。
空のセルはどのように処理されますか?
「Empty as NULL」にチェックを入れると、CSV内の空白セルはSQL出力時にNULLとして書き出されます。チェックを外した場合、テキスト列の空セルは空文字('')として扱われ、空文字が構文エラーとなる数値列ではNULLとして処理されます。
ダイアレクトを切り替えると、生成されるデータ型が変わるのはなぜですか?
データベースシステムによって、カラム型に使用されるキーワードが異なるためです。例えば、真偽値(boolean)カラムはPostgreSQLではBOOLEANですが、SQL ServerではBIT、SQLiteではINTEGERで表現されます。このツールは、選択したダイアレクトに合わせてCREATE TABLE構文とデータのフォーマットを自動的に調整します。