CSV → SQL INSERTジェネレーター
CSVデータをSQL INSERT文に変換します。自動検出された列タイプでCREATE TABLE DDLも生成できます。
このツールについて
CSV to SQL INSERT ジェネレーターは、スプレッドシートデータをSQLのINSERTステートメントに変換するブラウザベースのツールです。このユーティリティは、CSVファイルからSQLデータベースへのデータ移行、テストデータベースの高速化、またはあらゆるSQLデータベースシステムに対して直接実行可能な形式でデータを共有する必要があるデベロッパーやデータベース管理者に不可欠です。
このツールを使用するには、CSVデータをペーストまたはアップロードすると、列ヘッダーとデータ型が自動的に検出されます。その後、既存のテーブルの単純なINSERTステートメントを生成することも、推定された列定義を持つCREATE TABLEステートメントを含めることもできます。このツールは、テーブル名の指定、NULL値の処理、異なるSQLダイアレクトまたはクォートスタイルの選択など、カスタマイズオプションをサポートしています。
このツールは、引用符付きフィールド内のカンマ、セル内の改行、特殊文字などのエッジケースを適切に処理します。ワンタイムのデータインポート、開発用データベースへのシード操作、またはコマンドラインツールやデータベースクライアントソフトウェアを必要としないバックアップと復元ワークフロー用のデータセット準備に特に有用です。
よくある質問
コード実装
import csv
import io
def csv_to_sql(csv_text, table_name="my_table", include_create=True):
reader = csv.reader(io.StringIO(csv_text.strip()))
rows = list(reader)
if len(rows) < 2:
return ""
headers = rows[0]
data_rows = rows[1:]
def infer_type(values):
for v in values:
v = v.strip()
if v == "":
continue
try:
int(v)
return "INT"
except ValueError:
try:
float(v)
return "FLOAT"
except ValueError:
return "VARCHAR(255)"
return "VARCHAR(255)"
types = [infer_type([r[i] for r in data_rows if i < len(r)])
for i in range(len(headers))]
sql = []
if include_create:
cols = ", ".join(f"{h} {t}" for h, t in zip(headers, types))
sql.append(f"CREATE TABLE {table_name} ({cols});")
for row in data_rows:
values = []
for i, val in enumerate(row):
if types[i] == "VARCHAR(255)":
values.append(f"'{val.replace(chr(39), chr(39)*2)}'")
else:
values.append(val if val.strip() else "NULL")
cols_str = ", ".join(headers)
vals_str = ", ".join(values)
sql.append(f"INSERT INTO {table_name} ({cols_str}) VALUES ({vals_str});")
return "\n".join(sql)
csv_data = """id,name,score
1,Alice,95.5
2,Bob,87"""
print(csv_to_sql(csv_data))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.