CSVをSQLに変換(CREATE TABLE + INSERT)
CSVをSQLに変換します。列の型を推定したCREATE TABLEと、まとめたINSERTまたはupsert文を、MySQL、PostgreSQL、SQLite、SQL Server、Oracle向けに生成します。
スプレッドシートをデータベースに読み込むには、通常、CREATE TABLEを手で書き、さらに何百行ものINSERTを書く必要があります。CSV(またはExcelからコピーしたセル)を貼り付けると、その両方が得られます。列の型はデータから推定され(整数、適切な精度の小数、真偽値、日付、長さに合ったテキスト)、行は複数行をまとめたINSERTとして、キー列を指定した場合はupsertとして書き出されます。識別子、文字列、真偽値、日付は、MySQL、PostgreSQL、SQLite、SQL Server、Oracleが期待する形式で書かれます。
使い方
- 1行目に列名があるCSVデータを貼り付けます。
- テーブル名を入力し、データベースを選びます。
- CREATE TABLEとDROP TABLE IF EXISTSを含めるかどうかを選びます。
- 必要に応じてキー列の名前を指定し、単純なINSERTの代わりにupsert文を得ます。
- SQLをコピーして、データベースクライアントで実行します。
計算式
INSERT INTO テーブル (列, …) VALUES (1行目), (2行目), …; — 行のまとまりごとに1つの文
型: 整数 → INTEGER(±2,147,483,647を超えるとBIGINT)、小数 → DECIMAL(p,s)(p = 整数の桁数 + s 小数の桁数)、true/false → BOOLEAN(SQL ServerではBIT、OracleではNUMBER(1)、SQLiteでは1/0)、YYYY-MM-DD → DATE、時刻があればTIMESTAMP/DATETIME、それ以外はVARCHAR(最長の値)またはTEXTです。02134のように0で始まる値はテキストのままです。シングルクォートは2つにされ、MySQLではバックスラッシュも2つにされます。upsertにはON CONFLICT(PostgreSQL、SQLite)、ON DUPLICATE KEY UPDATE(MySQL)、MERGE(SQL Server、Oracle)が使われます。
計算例
サンプルの商品は、id INTEGER、name VARCHAR、email VARCHAR、price NUMERIC(4,2)(4.50、1.20、12)、in_stock BOOLEAN、added DATEを持つCREATE TABLE "products"になり、続いて3行を含むINSERTが1つ付きます。3行目はシングルクォートが2つになる様子と、空の日付がNULLになる様子を示し、2行目の空のメールもNULLになります。
よくある質問
数値の列がVARCHARになるのはなぜですか?
少なくとも1つのセルが単純な数値ではないためです。桁区切り、通貨記号、単位、先頭のゼロなどが原因です。スプレッドシートで列を整えるか、生成されたSQLで型を変更してください。
何行まで変換できますか?
ブラウザ内で最大200,000行です。1つの文には最大1000行が入ります。これはSQL Serverの1つのVALUESリストの上限です。
データを実行しても安全ですか?
すべての値は、引用符で囲まれたリテラルまたは検証済みの数値として書かれるため、セルの内容が文の外にはみ出すことはありません。それでも、本番のデータベースで実行する前にはSQLを確認してください。
ファイルはアップロードされますか?
いいえ。変換はブラウザ内で行われます。
出典
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/csv-to-sql-tool/
このツールを引用する
kakaoCalc. (2026, November 8). CSVをSQLに変換(CREATE TABLE + INSERT). https://kakao.mobile/ja/tools/csv-to-sql-tool/
“CSVをSQLに変換(CREATE TABLE + INSERT).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/csv-to-sql-tool/.