快速、私密的 CSV 转 SQL 转换器
将电子表格数据转换为关系型数据库格式是开发者、数据库管理员和数据分析师的日常工作。这款工具可让您直接在浏览器中将 CSV 转换为 SQL。无论您是要初始化新数据库、迁移旧数据,还是快速导入数据集,都能在几秒钟内从 CSV 数据生成 INSERT 语句。
由于整个转换过程都在您的设备上本地运行,因此您的数据绝不会被上传到外部服务器。这确保了绝对的隐私和安全,让您可以放心处理机密的用户数据、财务记录或专有信息,无需担心数据泄露风险。
自动类型推断工作原理
手动为包含几十列的数据集编写表结构非常繁琐。为了节省时间,本工具会自动读取您的 CSV 数据,并为每一列推断出最合适的 SQL 数据类型。它会检查行中的实际值(跳过空单元格),并应用以下规则:
- INTEGER:如果该列中的所有值均为整数(例如
42、-15),则分配此类型。 - DECIMAL:如果值为浮点数或使用科学记数法(例如
3.14、-0.5),则分配此类型。 - BOOLEAN:如果该列仅包含
true或false(不区分大小写),则分配此类型。 - DATE:如果值符合标准 ISO 日期格式(
YYYY-MM-DD),则分配此类型。 - TEXT / VARCHAR:默认后备类型。如果列中包含混合数据、纯文本或不符合上述严格规则的格式,则分配此类型。
如果您选择生成 CREATE TABLE 语句,这些推断出的类型会自动映射为您所选数据库方言的正确语法。
支持的 SQL 方言
不同的数据库引擎在引用标识符(如表名和列名)、定义数据类型以及格式化字面量时有不同的规则。本工具支持四种主流 SQL 方言,确保生成的 SQL 语句运行无语法错误:
MySQL: 当您将 CSV 转换为 MySQL 时,本工具会使用反引号(`)包裹表名和列名。文本列默认使用 VARCHAR(255),布尔值则写为 TRUE 或 FALSE。
PostgreSQL: 标识符使用双引号(")包裹。文本列使用 TEXT 类型,这是 Postgres 中标准且高效的类型。原生支持布尔值,写为 TRUE 或 FALSE。
SQLite: 标识符使用双引号包裹。由于 SQLite 采用动态类型且存储类有限,小数会映射为 REAL,布尔值映射为 INTEGER(输出 1 或 0),文本则使用 TEXT 类型亲和性。
SQL Server (T-SQL): 标识符使用方括号([])包裹。文本列默认使用 VARCHAR(255),布尔值映射为 BIT 数据类型(输出 1 或 0)。此外,如果文本字符串包含非 ASCII 字符,工具会自动添加 N 前缀(例如 N'Value'),以确保正确插入 Unicode (NVARCHAR) 数据。
自定义 SQL 输出
您可以通过配置选项来定制生成的 SQL 脚本,以满足特定的部署需求:
- 表名: 定义目标表的准确名称。工具会自动根据您选择的 SQL 方言添加正确的引号。
- 包含 CREATE TABLE: 如果您要从头开始建库,请启用此选项,以便在插入语句前生成表结构定义。工具会默认使用 CSV 的表头作为列名。
- 批量插入: 逐条执行数千个
INSERT INTO语句非常耗时。启用此选项后,最多可将 500 行数据合并为一条 CSV 转 SQL 插入语句。这能大幅减小文件体积并显著提升导入性能。 - 空单元格转为 NULL: 电子表格中常有空白单元格。勾选此选项后,CSV 中的空字符串将被明确转换为 SQL 的
NULL关键字,而不是向数据库中插入空字符串 ('')。
准备 CSV 数据的技巧
为了获得最佳转换效果,请确保您的 CSV 文件包含表头行。本工具会提取数据的第一行作为 CREATE TABLE 和 INSERT 语句的列名。如果表头为空,将自动命名为 column_1、column_2 等。
如果数据包含逗号、换行符或引号等复杂文本,请确保 CSV 格式正确(通常需将该字段用双引号括起来)。本工具内置强大的 CSV 解析器,能正确处理转义引号和多行字段。
如果需要将数据转换为其他格式,我们的 CSV 转 JSON 或 CSV 转 Excel 转换器可能会对您有所帮助。SQL 生成后,如果需要调整代码缩进或关键字大小写,可以使用 SQL 格式化工具 进行处理。