CSV to SQL 変換ツール
CSV を MySQL・PostgreSQL・SQLite・SQL Server 向けの SQL INSERT 文にブラウザ内で変換します。データは端末上に留まります。
CSV to SQL 変換ツールはすべてブラウザ内で動作します。貼り付けたりドロップした CSV と生成された SQL は端末から離れず、ArrayKit には何もアップロードされません。
SQL Formatter を開く
CSV to SQL 変換 について
CSV to SQL 変換ツールは、CSV ファイルをそのまま実行できる SQL に変換します。データを貼り付けるかドロップし、方言 — MySQL・PostgreSQL・SQLite・SQL Server — を選ぶと、各列の型を推論し、その方言が期待するとおりにテーブル名と列名を引用符で囲み、すべての値をエスケープするため、シングルクォート・空セル・数値・真偽値が正しく出力されます。1 行につき 1 つの INSERT、またはバッチ化された複数行 INSERT に加え、スキーマをゼロから初期化できる任意の CREATE TABLE が得られます。開発用データベースの初期投入、スプレッドシートのエクスポートの取り込み、マイグレーションの作成をしていて、何千もの値を手入力する代わりに SQL を生成してほしい開発者のために作られています。変換全体がブラウザ内で行われるため、読み込んだ CSV が端末から離れることはありません。
機能
- MySQL・PostgreSQL・SQLite・SQL Server 向けの INSERT 文を生成
- データから整数・浮動小数点・真偽値・テキストの列型を推論
- 方言ごとに識別子を正しく引用符処理: `col`, "col", [col]
- シングルクォートをエスケープし、空または null 相当のセルに NULL を出力
- 選んだ方言に対応する列型をマッピングした任意の CREATE TABLE
- 高速な一括読み込みのためのバッチ化された複数行 INSERT モード
- 貼り付け・入力・.csv ファイルのドロップに対応 — ヘッダー行付き
- SQL をコピー、またはクライアントで実行できる .sql ファイルとしてダウンロード
CSV to SQL 変換 の使い方
- CSV を貼り付けるか .csv ファイルを選びます — 先頭行はヘッダーのままにします
- 対象の方言を選びます: MySQL・PostgreSQL・SQLite・SQL Server
- テーブル名を設定し、スキーマが必要なら CREATE TABLE を有効にします
- 生成された SQL をコピーするか .sql ファイルとしてダウンロードします
例
入力
id,name,active
1,O'Brien,true
2,Ada,false
出力
INSERT INTO `my_table` (`id`, `name`, `active`) VALUES (1, 'O''Brien', 1);
INSERT INTO `my_table` (`id`, `name`, `active`) VALUES (2, 'Ada', 0);
O'Brien のアポストロフィがエスケープされ、真偽値は MySQL 向けに 1 と 0 になります。
よくあるエラーとトラブルシューティング
- 郵便番号や id のような数値に見える列で先頭のゼロが失われる。 — 007 のような値はゼロが残るよう意図的にテキストとして保持されます。数値として保存したい場合は、元の CSV でパディングを先に取り除いてください。
- 数値を期待していた列のすべての値がテキストとして引用符で囲まれる。 — 列は空でないすべてのセルが数値の場合にのみ整数または浮動小数点として型付けされます。1 つでも異質な値(ダッシュ・N/A・ラベル)があると列全体がテキストになります。そのセルを整えると数値出力になります。
- 真偽値が 1 と 0 で出力されたが、TRUE と FALSE が欲しかった。 — TRUE / FALSE リテラルを出力するのは PostgreSQL だけです。MySQL・SQLite・SQL Server はそれらの真偽値型の列に対して正しい 1 と 0 を使います。名前付きリテラルには方言を PostgreSQL に切り替えてください。
- ファイルを読み込んだ後、出力が空か列が間違っている。 — 先頭行がすべての列に名前を持つヘッダーであることを確認してください。ヘッダーセルが欠けているか空の場合はフラグが立ち、名前のない列で SQL が生成されないようにします。
よくある質問
- CSV to SQL 変換ツールはどのように各列の型を判定しますか?
- 列内の空でないすべてのセルをスキャンします。すべて整数なら integer、すべて小数付きの数値なら float、すべて true/false 相当のトークンなら boolean、それ以外は text を使います。007 のようなゼロ埋めの数値は、先頭のゼロが失われないよう text のままです。
- データ内のシングルクォートやアポストロフィはどう扱われますか?
- 文字列値はシングルクォートで囲まれ、埋め込まれたシングルクォートは二重化されます('')。これは標準的な SQL のエスケープです。そのため O'Brien は 'O''Brien' になり、4 つの方言すべてで安全に実行できます。
- 空セルに対してどんな SQL を生成しますか?
- 空セルおよび NULL・NA・N/A というトークンは、空文字列ではなく SQL キーワードの NULL になります。これにより行が空のテキストではなく本物の null で挿入されます。
- 行を挿入するだけでなくテーブルも作成できますか?
- はい。CREATE TABLE を有効にすると、方言向けにマッピングされた列型を持つ CREATE TABLE 文が出力され、その後に INSERT が続きます。MySQL・PostgreSQL・SQLite は IF NOT EXISTS を使うため、スクリプトは再実行可能です。
- 複数行 INSERT オプションは何のためですか?
- デフォルトでは各行が独自の INSERT 文となり、読みやすく差分も取りやすくなっています。複数行 INSERT は多くの行を共有の VALUES リストを持つ 1 つの文にまとめ、MySQL・PostgreSQL・SQLite で大きなファイルをより高速に読み込みます。
- SQL の生成のために CSV はアップロードされますか?
- いいえ。解析と SQL 生成は JavaScript を使ってすべてブラウザ内で動作します。貼り付けたりドロップした CSV はサーバーに送信されないため、機密のスプレッドシートのエクスポートも端末上に留まります。
関連ツール
すべての ArrayKit ツール