CSV转SQL转换器
将CSV数据转换为SQL CREATE TABLE和INSERT语句,支持多种数据库
配置选项
CSV转SQL生成器文档
这个工具是什么?
此工具将CSV(逗号分隔值)数据转换为SQL语句,包括CREATE TABLE(DDL)和INSERT语句。它会自动从CSV数据推断列数据类型,并为多个数据库系统生成特定于数据库的SQL语法。
主要功能
- 支持多种数据库系统(MySQL、PostgreSQL、SQL Server、SQLite、Oracle)
- 从CSV值自动推断数据类型
- 可自定义表名和分隔符
- 可选生成DROP TABLE语句
- 从CSV标题行检测列名
常见使用场景
- 从电子表格迁移数据到数据库
- 从导出的CSV文件创建数据库表
- 生成测试数据INSERT语句
- 将传统数据转换为SQL格式
支持的数据库
- MySQL - 流行的开源关系数据库
- PostgreSQL - 具有企业功能的高级开源数据库
- SQL Server - 微软的企业级数据库解决方案
- SQLite - 轻量级嵌入式数据库
- Oracle - 企业级商业数据库
最佳实践
检查生成的数据类型
自动检测的类型是最佳猜测。检查并调整VARCHAR长度,使用适当的数字类型(INT与BIGINT),并考虑对财务数据使用DECIMAL而非FLOAT。
手动添加约束
生成器创建基本表。根据您的数据需求和关系添加PRIMARY KEY、FOREIGN KEY、UNIQUE、NOT NULL和CHECK约束。
为常查询列添加索引
创建表后,为WHERE子句、JOIN和ORDER BY中使用的列添加索引。但避免过度索引,因为它会减慢INSERT操作。
先用示例数据测试
首先为CSV的子集生成SQL。验证表结构和数据类型正确工作后再处理完整数据集。
适当处理NULL值
空的CSV字段会根据上下文变成NULL或空字符串。在表设计中定义明确的NULL处理,并相应调整生成的SQL。
大量插入使用事务
将批量INSERT语句包装在事务中(BEGIN/COMMIT)。这可以提高性能,并允许在任何插入失败时回滚。
常见问题解答
如何导入大型CSV文件?
对于非常大的文件(受服务器或浏览器限制),建议使用数据库的命令行工具(例如 MySQL 的 `LOAD DATA INFILE` 或 PostgreSQL 的 `COPY`)。本工具针对浏览器端处理中小型文件进行了优化。
我可以使用自定义列名吗?
可以。如果您的 CSV 包含标题行,工具会自动使用这些名称。您也可以在执行前手动编辑生成的 SQL CREATE TABLE 语句来修改列名或类型。
日期格式如何处理?
工具尝试识别标准日期格式(ISO 8601)。如果您的日期是自定义格式,可能会被视为字符串。为了获得最佳结果,建议将 CSV 中的日期格式化为 YYYY-MM-DD。
我的数据安全吗?
是的,这是一个客户端工具。您的 CSV 数据完全在浏览器的 JavaScript 引擎中处理,永远不会上传到我们的服务器。
为什么某些数字被加了引号?
如果一列包含数字和文本的混合,或者包含带有货币符号的数字,工具会将该列视为 VARCHAR(字符串)并给值加上引号,以防止 SQL 错误。