先看结论
- 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。
SQL 文件是什么,怎么查看、执行和导入
SQL 语言由 ISO/IEC 9075 定义,涵盖数据结构的定义以及对其中数据的操作,相关标准归属 ISO/IEC JTC 1/SC 32。SQL 脚本将语句保存在文本文件中;PostgreSQL pg_dump 的脚本输出可包含重建数据库所需的 SQL 命令。
SQL 文件跨数据库导入可能需要修改语句,不能仅凭扩展名判断兼容性。PostgreSQL 明确说明,脚本迁移到其他 SQL 数据库产品时可能需要调整。导出选项也影响保留内容:pg_dump --data-only 只导出数据、不含模式定义,因此不能单独保留完整数据库结构。
怎么打开
只想查看内容时,在 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 只导出数据、不含模式定义,因此不能单独保留完整数据库结构。
文件安全
执行陌生 SQL 前应检查语句。脚本可能修改或删除数据库对象,例如 pg_dump --clean 会在重建对象前输出 DROP 命令。PostgreSQL 官方警告,恢复转储可能执行源数据库超级用户选择的任意代码;部分转储或部分恢复也不能限制这一风险。源超级用户不可信时,应先检查 SQL。
来路不明、文件名带两个后缀,或者内容和扩展名对不上——先停下来核对。
转换格式
SQL 文件跨数据库导入可能需要修改语句,不能仅凭扩展名判断兼容性。PostgreSQL 明确说明,脚本迁移到其他 SQL 数据库产品时可能需要调整。导出选项也影响保留内容:pg_dump --data-only 只导出数据、不含模式定义,因此不能单独保留完整数据库结构。
先复制一份原文件再转换,转完对照看看画质、元数据和排版有没有变。
常见问题
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`。该选项只导出数据,不包含模式定义,因此这种脚本不能单独保留完整数据库结构。
相关格式
资料来源
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 官方文档