ホーム · 無料ツール · CSV を SQL に変換

CSV を SQL に変換

.csv を置いて、テーブル名とデータベースを選ぶだけです。 データから推定した列の型 —— 整数、小数、日付、真偽値、最長の値に合わせた文字列 —— で CREATE TABLE を書き、続けて INSERT 文を出します。 文字コードは自動で判定するので、基幹システムが書き出した Shift-JIS の CSV でも日本語が化けずに SQL になります。日本語の列名もそのまま列名になります。ファイルはアップロードしません。

CSV ファイル

.csv / .tsv / .xlsx をここにドロップ、またはクリックして選択

毎月やっていますか? TableDI 2 で一度やってジョブに保存すれば、来月はもう一度実行するだけです。 TableDI 2 を無料でダウンロード

アップロードは行いません。 ファイルはこのタブの JavaScript が読んでいるだけで、あなたのパソコンから出ません —— サーバーは一切見ておらず、タブを閉じればデータは消えます。

データベース付属の CSV 取り込みでは足りない理由

MySQL の LOAD DATA INFILE も PostgreSQL の COPY も、取り込みウィザードも、正しい型のテーブルが先にあることが前提です。 40 列ある書き出しファイルを目で見て型を決めるのがいちばん時間のかかる部分で、1 列間違えると途中で失敗するか、全部 VARCHAR(255) のまま入ってしまいます。 このページは CREATE TABLE を代わりに書き、実行する前に各列がどの型になったかを一覧で見せます。

Shift-JIS の CSV も、そのまま読めます

日本の業務システムが書き出す CSV は、今でも Shift-JIS(CP932)が多数派です。UTF-8 決め打ちで読むツールに通すと、INSERT 文の中の日本語がすべて化けます。 このページはファイルを読むときに文字コードを判定し(UTF-8 / Shift-JIS / EUC-KR / Big5 / GBK / Windows-1252、BOM 付き UTF-8・UTF-16 にも対応)、SQL は UTF-8 で書き出します。 区切り文字もカンマ・セミコロン・タブ・縦棒から判定します。

日本語の列名は、引用符付きでそのまま使います

見出しが 顧客名・受注日・金額 なら、列名もそのままです。MySQL ならバッククォート、PostgreSQL と SQLite なら二重引用符、SQL Server なら角かっこで囲むので、4 種類とも正しい識別子になります。 空白や記号はアンダースコアに置き換え、全角の英数字は半角に揃え、英字は小文字にします。同じ名前の列が 2 つあれば 金額 と 金額_2 に分けます。 SQL Server 向けには文字列に N 接頭辞を付け、型も NVARCHAR にするので、日本語が ? に化けません。

型の推定が決めること ―― 日本の CSV で気を付ける点

  • 先頭がゼロの番号は文字列型。 00012345 のような顧客コードは数量ではなく識別子なので、ゼロが消えないよう文字列型にします。
  • 桁区切りのカンマは外します。 8,600 は 8600 として小数型の列に入ります。
  • 「円」や「¥」が付いた金額は文字列型になります。 5000円・¥5,000 は数値と判定しません。数値の列にしたいなら、元のファイルで記号を外してください。
  • 日付型になるのは 2026-10-01 の形だけ。 日本でよく使う 2026/10/01 や 令和8年10月1日 は日付と判定せず、文字列型の列になります。
  • 文字列の長さは最長の値に合わせます。 どこでも VARCHAR(255) にはせず、最長の値の 1.5 倍を 50 単位で切り上げます。

このページがしないこと

  • 文字セットの指定。 CREATE TABLE に CHARSET は付けません。データベースやテーブルの既定(MySQL 8 なら utf8mb4)が使われます。
  • 和暦や区切り違いの日付の変換。 上のとおり、文字列のまま入れます。
  • データベースへの直接接続。 SQL を作るだけで、実行はご自身のクライアントで行います。

よくある質問

Shift-JIS の CSV を変換すると文字化けしませんか

しません。読み込むときに文字コードを判定し、Shift-JIS なら Shift-JIS として読んでから、SQL を UTF-8 で書き出します。 ただし取り込む先のデータベースやテーブルが日本語を保存できる文字セット(MySQL なら utf8mb4 など)になっている必要があります。

日本語の列名のままテーブルを作れますか

作れます。列名は引用符付きの識別子として書くので、MySQL・PostgreSQL・SQLite・SQL Server のどれでも日本語の列名が有効です。英字の列名にしたいときは、元の CSV の見出しを書き換えてから置いてください。

日付の列が文字列型になりました

日付型と判定するのは 2026-10-01(時刻付きも可)の形だけです。2026/10/01 の列は文字列型になります。 日付型にしたい場合は、元のファイルで区切りをハイフンに置換してから変換してください。

CREATE TABLE なしで INSERT 文だけ作れますか

作れます。「CREATE TABLE を含める」のチェックを外してください。テーブルがもうあって行を足したいだけのときに使います。

大きいファイルでも変換できますか

上限はブラウザのタブのメモリーです。画面には SQL の先頭 20,000 文字を表示し、ダウンロードには全部入ります。 数百 MB のファイルなら、データベース付属の一括取り込みのほうが向いています。その場合も、ここで作った CREATE TABLE はそのまま使えます。

ファイルはアップロードされますか

されません。CSV はこのタブの JavaScript が読み、SQL もこのタブの中で作ります。

毎月やっていますか?

TableDI 2 で一度やってから、ジョブとして保存します。来月は新しいファイルを入れて、もう一度実行するだけです。

macOS(Apple シリコンと Intel)。Windows 版は開発中です(それまでの使い方)。無料版は試用版ではありません —— アカウントもカードも不要です。

最終確認 2026-09-11、TableDI チーム。このページに間違いがありますか? お知らせください —— 受信箱はひとつで、TableDI を作っている人間が読んでいます。