SQL 脚本转储 (.sql)

ISO/IEC 标准

结构化查询语言脚本 (SQL) 是通用的关系型数据库格式,包含用于构建数据库表的声明式 DDL 语句以及用于填充数据的 DML INSERT 语句。

将 SQLITE 转换为 SQL

免费的浏览器端 SQLITE 转 SQL 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 SQL 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 SQL 文件:

十六进制签名 (偏移量 0):

没有固定签名

ASCII 表示形式: 没有固定签名

标准化: ISO/IEC 9075:2023 / ANSI SQL 标准

技术规格

容器架构Unicode 纯文本脚本,包含数据定义语言(DDL)和数据操作语言(DML)语句
压缩方式未压缩纯文本(常压缩为 .sql.gz 或 .sql.zst)
字节序UTF-8 / Unicode 文本流
色彩空间不适用(数据库脚本)
通道与结构关系数据库架构定义(表、视图、索引、外键)及 INSERT 数据行
最大尺寸文本长度不限(支持数 TB 的数据库转储)
透明度不支持
流式传输与渐进式加载支持逐条语句进行事务式流处理

技术对比矩阵:SQL 对比同类产品

技术属性SQL (当前)CSVJSONSQLITE
模式保留完整保留架构(表、类型、外键)仅表头列名自描述文档结构完整的二进制数据库文件
执行模型可执行的 DDL/DML 脚本被动的行列数据被动的文档树直接的二进制 B-tree 查询
标准化ISO/IEC 9075 标准RFC 4180RFC 8259SQLite 开放文件格式
数据关系完整的外键约束扁平表格(无关系)嵌套的父子对象完整的关系约束

常见损坏模式与十六进制恢复指南

数据库导入失败,报错:“ERROR: syntax error at or near...”。

根本原因: SQL 方言不匹配(例如将 MySQL 反引号转储导入到 PostgreSQL 中)或未转义的单引号。

恢复方法: 使用 File2File.app 数据库转码工具转换并清理不同 SQL 方言的语法。

安全分析与解析器攻击向量

执行不受信任的 SQL 脚本可能会导致灾难性的 SQL 注入、任意文件写入或管理员权限提升。

已知攻击向量

  • SQL 注入(SQLi)会执行非预期的管理员命令(例如 DROP TABLE、GRANT ALL)。
  • 通过“COPY ... FROM PROGRAM”或“LOAD DATA INFILE”读取或写入任意服务器文件。
  • 通过未建立索引的递归公共表表达式 (CTE) 引发拒绝服务攻击。

防御性最佳实践: 绝不要直接在生产数据库服务器上执行不受信任的 SQL 脚本;应在隔离的沙盒中检查和清理查询。

历史渊源与里程碑

2023发布 ISO/IEC 9075:2023,将属性图查询 (SQL/PGQ) 整合到标准 SQL 中。
1986ANSI 和 ISO 采纳 SQL 作为关系数据库管理系统的官方标准。
1974Donald Chamberlin 和 Raymond Boyce 在 IBM 研究院基于 Edgar F. Codd 的关系模型开发了 SEQUEL。

核心优势与特点

  • 无可争议的企业数据存储全球标准:兼容 PostgreSQL、MySQL、SQLite、Oracle 和 SQL Server。
  • 完整保留关系型数据库结构:除数据外,还可重建表、主键、外键、约束和索引。
  • 支持事务执行:可在事务(BEGIN...COMMIT)中运行语句,确保数据库以原子方式恢复。

技术局限与劣势

  • 方言不兼容:细微的语法差异(例如 AUTO_INCREMENT、SERIAL 和 AUTOINCREMENT)需要在不同数据库引擎之间进行转换。
  • 巨大的文本开销:纯 SQL INSERT 语句占用的空间明显大于二进制数据库存储。
  • 在未禁用索引重建的情况下,导入海量的多吉字节数据库转储文件时速度较慢。

趣味技术冷知识

  • SQL 最初名为"SEQUEL"(结构化英文查询语言),但由于与霍克西德利(Hawker Siddeley)飞机公司的商标纠纷而缩写为 SQL。
  • 正式的 ISO 标准规定将其逐个字母读作"S-Q-L",但数百万开发者在口语中将其读作"sequel"。
  • 据估计,全球超过 1 万亿台设备上安装了使用 SQL 语法的 SQLite。

常见技术问题

什么是 .sql 文件?

.sql 文件是一个纯文本脚本,包含创建表、建立关系以及将数据行插入关系数据库的 SQL 命令。

我可以将 SQL 转储文件转换为 CSV 或 JSON 吗?

可以。File2File.app 可以解析 .sql 数据库转储文件,并将表格直接导出为干净的 CSV 电子表格或结构化的 JSON 文档。

为什么我的 MySQL .sql 文件在 PostgreSQL 中无法工作?

不同数据库系统的 SQL 方言各不相同(例如数据类型和引号转义方式)。在不同数据库引擎之间迁移时,必须转换特定方言的语法。