CSV到SQL转换器
将具有标题行的CSV数据转换为CREATE TABLE和INSERT语句 — 推断每列的类型(INTEGER/REAL/TEXT),选择MySQL/PostgreSQL/SQLite标识符引用,并转义字符串值。
输入
将其清理为有效的SQL标识符:字母、数字、下划线 — 不能以数字开头。
关闭时会为每行生成一条INSERT语句。
输出
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/csv-to-sql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"csvInput": "id,name,price\n1,Widget,9.99\n2,\"O'Brien's Gadget\"…",
"tableName": "products",
"dialect": "mysql",
"batchInserts": "true"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `csv-to-sql` tool (CSV to SQL Converter) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/csv-to-sql/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="CSV到SQL转换器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|---|
| 需要更多积分? | 查看定价 |
也可通过
使用指南
复制粘贴CSV数据 — 电子表格导出、数据库转储、手工输入的快速列表 — 即可获得随时可运行的SQL:与您的列相匹配的CREATE TABLE语句,后跟加载每个数据行的INSERT语句。这是从几行数据填充新数据库表的最快方式,无需手动编写架构。
工作原理
在第一行粘贴带有标题行的CSV。转换器将该行视为列名,之后的每一行视为数据。解析遵循RFC 4180:用双引号括起来的字段可以包含逗号或换行符,用双引号括起来的字段内的""变成字面"。
类型推断查看列中的每个值(忽略空白)并对其进行分类:
- INTEGER — 每个非空值都是整数(
42、-7)。 - REAL / DECIMAL / NUMERIC — 每个非空值都有小数点(
9.99、-3.5)。确切的类型名称取决于方言。 - TEXT / VARCHAR — 任何其他内容,包括混合整数和小数的列。
完全为空的列默认为TEXT。无论列类型如何,空单元格在生成的INSERT语句中变成NULL。
方言控制标识符引用和列类型名称:
| 方言 | 标识符引用 | INTEGER | REAL/十进制 | TEXT |
|---|---|---|---|---|
| MySQL | `反引号` |
INT |
DECIMAL(10,2) |
VARCHAR(255) |
| PostgreSQL | "双引号" |
INTEGER |
NUMERIC(10,2) |
TEXT |
| SQLite | "双引号" |
INTEGER |
REAL |
TEXT |
文本值用单引号括起来,内部任何单引号都被加倍(it's变成'it''s') — 每个主要数据库都理解的标准SQL-92转义约定。
使用方法
- 将CSV(带标题行)粘贴到输入框中。
- 设置表名 — 您输入的任何内容都会自动清理成有效的标识符(非字母数字字符变成下划线,以数字开头的名称会获得前导下划线)。
- 选择目标方言:MySQL、PostgreSQL或SQLite。
- 切换批量INSERT在包含多个
VALUES行的单个INSERT语句(紧凑、更少往返)或每行单独的INSERT语句(更易于审查或部分重新运行)之间选择。 - 复制或下载生成的SQL。
FAQ
会检测到我的列的错误类型吗? 如果列混合格式 — 一些整数、一些小数或偶尔的文本标签(如"N/A") — 它会回到TEXT,因此不会有数值被静默舍入或拒绝。如果要使用数字列类型,请先在电子表格中清理混合列。
空单元格会发生什么? 无论推断的列类型如何,它们在INSERT语句中变成NULL。
支持SQL Server或Oracle吗? 目前不支持 — 此工具针对MySQL、PostgreSQL和SQLite,这涵盖了自托管和嵌入式使用情况的绝大多数。
我的数据会上传到任何地方吗? 不会。解析和SQL生成完全在您的浏览器中运行 — 您的CSV数据永远不会离开您的设备。