00

先看结论

  • SQL 脚本是保存待执行 SQL 语句的文本文件,用于定义数据库结构或操作数据,其兼容性和执行影响取决于目标数据库及脚本内容。
  • 只想查看内容时,在 Windows 或 Mac 上用文本编辑器打开;手机上使用能读取本地文本文件的编辑器。查看文本不会执行语句。MySQL 支持通过 `mysql db_name < text_file` 执行,也支持在 mysql 客户端内使用 `source text_file` 或 `\.` 命令。PostgreSQL pg_dump 的纯文本脚本应交给 psql 恢复。
  • 执行陌生 SQL 前应检查语句。脚本可能修改或删除数据库对象,例如 pg_dump --clean 会在重建对象前输出 DROP 命令。PostgreSQL 官方警告,恢复转储可能执行源数据库超级用户选择的任意代码;部分转储或部分恢复也不能限制这一风险。源超级用户不可信时,应先检查 SQL。
01

SQL 文件是什么,怎么查看、执行和导入

SQL 语言由 ISO/IEC 9075 定义,涵盖数据结构的定义以及对其中数据的操作,相关标准归属 ISO/IEC JTC 1/SC 32。SQL 脚本将语句保存在文本文件中;PostgreSQL pg_dump 的脚本输出可包含重建数据库所需的 SQL 命令。

先把原文件留着

SQL 文件跨数据库导入可能需要修改语句,不能仅凭扩展名判断兼容性。PostgreSQL 明确说明,脚本迁移到其他 SQL 数据库产品时可能需要调整。导出选项也影响保留内容:pg_dump --data-only 只导出数据、不含模式定义,因此不能单独保留完整数据库结构。

02

怎么打开

只想查看内容时,在 Windows 或 Mac 上用文本编辑器打开;手机上使用能读取本地文本文件的编辑器。查看文本不会执行语句。MySQL 支持通过 `mysql db_name < text_file` 执行,也支持在 mysql 客户端内使用 `source text_file` 或 `\.` 命令。PostgreSQL pg_dump 的纯文本脚本应交给 psql 恢复。

只想看看内容

只想查看内容时,在 Windows 或 Mac 上用文本编辑器打开;手机上使用能读取本地文本文件的编辑器。查看文本不会执行语句。MySQL 支持通过 `mysql db_name < text_file` 执行,也支持在 mysql 客户端内使用 `source text_file` 或 `\.` 命令。PostgreSQL pg_dump 的纯文本脚本应交给 psql 恢复。

要发给别人

SQL 文件跨数据库导入可能需要修改语句,不能仅凭扩展名判断兼容性。PostgreSQL 明确说明,脚本迁移到其他 SQL 数据库产品时可能需要调整。导出选项也影响保留内容:pg_dump --data-only 只导出数据、不含模式定义,因此不能单独保留完整数据库结构。

03

文件安全

执行陌生 SQL 前应检查语句。脚本可能修改或删除数据库对象,例如 pg_dump --clean 会在重建对象前输出 DROP 命令。PostgreSQL 官方警告,恢复转储可能执行源数据库超级用户选择的任意代码;部分转储或部分恢复也不能限制这一风险。源超级用户不可信时,应先检查 SQL。

这几种情况先别打开

来路不明、文件名带两个后缀,或者内容和扩展名对不上——先停下来核对。

04

转换格式

SQL 文件跨数据库导入可能需要修改语句,不能仅凭扩展名判断兼容性。PostgreSQL 明确说明,脚本迁移到其他 SQL 数据库产品时可能需要调整。导出选项也影响保留内容:pg_dump --data-only 只导出数据、不含模式定义,因此不能单独保留完整数据库结构。

转换之前

先复制一份原文件再转换,转完对照看看画质、元数据和排版有没有变。

05

常见问题

SQL 文件是什么格式,用来做什么?

SQL 脚本是保存 SQL 语句的文本文件,可用于定义数据库结构、操作数据,或保存重建数据库的命令;具体用途取决于文件中的语句。

SQL 脚本用什么软件打开,MySQL 怎么执行 SQL 脚本文件?

用文本编辑器即可查看 SQL 文件内容。需要执行时,MySQL 支持 `mysql db_name < text_file`,也可在 mysql 客户端内使用 `source text_file` 或 `\.` 命令。先检查语句,再执行。

Windows 怎么打开 SQL 文件查看内容?

在文本编辑器中打开文件即可阅读 SQL 语句。若要执行,需使用对应数据库的客户端;MySQL 可在客户端内使用 `source text_file`。查看内容与执行脚本是不同操作。

Mac 用什么打开 SQL 文件,PostgreSQL 如何导入 SQL 文件?

在 Mac 上可用文本编辑器查看内容。如果文件是 PostgreSQL pg_dump 输出的纯文本 SQL 脚本,应使用 psql 恢复;不要仅凭 .sql 扩展名判断它适合当前数据库。

手机怎么查看 SQL 文件内容?

使用能打开本地文本文件的编辑器阅读语句即可。阅读文本不会执行脚本;要执行脚本,仍需使用连接到目标数据库的客户端(mysql,或用于 pg_dump 脚本的 psql)。

MySQL 执行 SQL 文件乱码怎么办?

检查输入文件使用的字符集。MySQL 会忽略开头的 Unicode BOM,但不会因此改变默认字符集。可按实际编码使用 `--default-character-set=utf8mb4` 等选项指定字符集。

MySQL SQL 脚本和 PostgreSQL SQL 脚本该选哪一种?

选择面向目标数据库的脚本。MySQL 通过 mysql 读取执行;PostgreSQL pg_dump 的纯文本脚本通过 psql 恢复。两者都可保存 SQL 文本,但跨产品使用可能需要修改语句。

SQL 文件跨数据库导入需要修改吗,怎样转换?

可能需要。应按目标数据库支持的 SQL 方言检查并修改语句。PostgreSQL 文档明确说明,脚本转到其他 SQL 数据库产品时可能需要调整;仅改文件名不能完成转换。

执行陌生 SQL 文件有什么风险?

脚本可能修改或删除对象。PostgreSQL 还警告,恢复转储可能执行源数据库超级用户选择的任意代码,部分恢复也不能限制该风险。来源不可信时,应在恢复前检查 SQL 语句。

PostgreSQL 的 SQL 导出文件为什么没有表结构?

检查是否使用了 `pg_dump --data-only`。该选项只导出数据,不包含模式定义,因此这种脚本不能单独保留完整数据库结构。

06

相关格式

资料来源

ISO/IEC JTC 1/SC 32 — Standards catalogue · ISO 官方标准目录

ISO/IEC 9075-1:2011 — SQL/Framework · IEC 官方标准说明

MySQL 8.4 Reference Manual — Executing SQL Statements from a Text File · Oracle MySQL 官方文档

PostgreSQL 17 Documentation — pg_dump · PostgreSQL 官方文档