不喜欢广告? 无广告 今天

转换为 CSV 到 SQL 插入语句转换器。

数据开发人员
广告 · 消除?

选项

数据库的插入语法。
数据库标识符引用批量插入
MySQL`column`INSERT INTO t VALUES (...), (...)
PostgreSQL"column"INSERT INTO t VALUES (...), (...)
SQLite"column"INSERT INTO t VALUES (...), (...)
SQL Server[column]INSERT INTO t VALUES (...), (...) 请输入具体的文本内容,以便进行翻译。
Oracle。"column"INSERT ALL INTO t VALUES (...) ... SELECT 1 FROM DUAL
逃离规则
  • 单引号在字符串中被双重: ```python print("This is a test: 'Hello'") ``` 输出为:`This is a test: 'Hello'`。 'it''s'
  • MySQL 反引号标识符: MySQL 反引号(backticks)用于处理包含特殊字符或空格的表名、列名等对象名称,以避免与关键字冲突。 ```sql CREATE TABLE `my table` ( id INT PRIMARY KEY, name VARCHAR(255) ); ``` 反引号可以用于以下场景: - 处理包含空格或特殊字符的名称。 - 避免与保留字(如 `order`, `group by`)冲突。 **注意**:在某些数据库系统中,反引号可能被视为SQL注入攻击的风险。建议使用其他方法(如大小写敏感或上划线 `_`) 来避免潜在问题。 `my column`
  • SQL Server 括号标识符: SQL Server 使用括号作为标识符,用于区分不同的语法元素。 [my column]
  • PostgreSQL/SQLite/Oracle 双引号标识符: "my column"
常见陷阱
  • CSV字段中包含逗号时应用双引号括起。
  • 双引号内的引用字段中的单引号通过双重化处理: ```json "example": "It's a test" → "example": "It\"'s a test" ``` ""
  • 空字段可能表示为NULL或根据上下文为空字符串。
  • 日期格式因数据库而异——验证日期列是否与您的数据库格式匹配。
  • 数据库服务器限制每个批量插入操作最多支持1000行。
  • Oracle 不支持标准的多行插入操作,使用 **INSERT ALL** 语法。
广告 · 消除?

指导

CSV到SQL插入语句转换器

转换为 CSV 到 SQL 插入语句转换器。

将CSV数据转换为MySQL、PostgreSQL、SQLite、SQL Server和Oracle的SQL插入语句。将您的CSV文件(带有列标题)粘贴进来,配置选项如批量插入和类型检测,并获得可以执行的安全 SQL 语句。支持引号字段、嵌套逗号、NULL值以及各数据库方言特定的转义处理。

如何使用

将CSV数据粘贴到输入区域(第一行必须是列标题)。选择目标数据库类型,设置表名,并选择INSERT风格(单个、批量或分块)。转换器会自动检测列类型并生成正确的SQL语句进行自动逃逸。在预览中查看已检测到的列,如果需要可覆盖类型,然后复制或下载SQL输出。可选地包含CREATE TABLE语句或事务框架。

特征

  • 五种数据库类型 MySQL(反单引号标识符)、PostgreSQL(双引号标识符)、SQLite(双引号)、SQL Server(方括号标识符)和Oracle(插入所有语法)。每种数据库都有正确的转义和引用规则。
  • 批量插入 每行单独插入,批量多行插入使用`VALUES`子句,或可配置分块大小。SQL Server自动限制为每个语句1000行。Oracle使用`INSERT ALL ... SELECT FROM dual`。
  • 自动识别输入类型 自动识别数据中的整数、浮点数、布尔值、NULL和字符串。 数字不加引号,字符串经过正确转义并加引号,NULL保持原样为“null”。
  • 列柱编辑器 已检测到预览列的名称、类型和样本值。在生成SQL之前,重命名列并覆盖类型检测。
  • 处理空值(NULL) 配置空值处理方式:将其视为SQL中的NULL、空字符串,或者检测文本中的“NULL”作为实际的NULL值。
  • 创建表 可选地在 `CREATE TABLE` 语句前添加根据每种数据库方言推断的列类型映射(如 VARCHAR、INT、DECIMAL、BOOLEAN 等)。
  • 交易包装器 可选地将输出包装在BEGIN/COMMIT中以实现原子执行。
  • RFC 4180 CSV 解析 RFC 4180 CSV 解析规范 处理包含引号内嵌逗号、转义引号和字段内换行符的引用字段。自动检测分隔符(逗号、制表符、分号、管道符)。

SQL 插入语法

SQL 插入语句向数据库表中添加行。基本语法如下: ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ``` INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2'); 字符串值必须正确转义——值内的单引号被重复(O’Brien变为O”Brien)。数值插入时不加引号。NULL是一个关键词,不是字符串。批量插入将多行合并成单一语句以提高性能: INSERT INTO table VALUES (...), (...), (...);

广告 · 消除?

如何在CSV到SQL的转换中处理特殊字符?

本转换器自动根据数据库方言对特殊字符进行转义。字符串值中的单引号被双引号替代(O’Brien变为O”Brien)。反斜杠在需要时进行转义。包含空格或保留词的列名会根据方言使用标识符进行引用:后引号用于MySQL,双引号用于PostgreSQL/SQLite/Oracle,方括号用于SQL Server。CSV字段中的嵌入逗号和换行符由RFC 4180解析器处理。

在单个和批量插入操作中,有什么区别?

每条 **INSERT** 操作会根据 CSV 行生成一条单独的 **INSERT** 语句——简单但对于大数据集来说速度较慢。批量 **INSERT** 将多个行合并为一条语句:`INSERT INTO table VALUES (…), (…), (…)`。这种方式显著提高了性能,因为它减少了数据库的往返次数。 大多数数据库支持批量 **INSERT**,但存在一些限制:SQL Server 最多允许每条 **INSERT** 操作 1000 行,而 MySQL、PostgreSQL 和 SQLite 没有固定行限制,但可能会遇到包尺寸的限制。Oracle 使用不同的语法:**INSERT ALL … INTO … SELECT FROM dual**。

如何进行类型检测?

转换器会检查每一列的值以推断其类型。匹配整数模式(仅包含数字,可选负号)的值被定义为 INTEGER。小数数字则变成 FLOAT 或 DECIMAL。真/假及是/否类型的值转换为 BOOLEAN。空单元格和“NULL”文本会根据配置生成 SQL NULL(可配置)。其他内容均视为字符串处理(VARCHAR)。您可以在生成 SQL 之前,通过查看列预览来覆写任何检测到的类型。类型推断影响了 VALUES 的引用格式(数值不加引号,字符串加引号)以及可选的 CREATE TABLE 列定义。

您的CSV数据是否已发送到服务器?

不——所有CSV解析、类型检测、SQL生成和转义都在用户的浏览器端通过JavaScript完成。您的数据永远不会离开设备。这很重要,因为CSV数据通常包含敏感信息:客户记录、财务数据、凭据或内部商业数据。所有处理都是客户端运行,无需API调用或数据存储。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 · 消除?
广告 · 消除?
广告 · 消除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 · 消除?