1. 库 - 数据传输
进入目标库,右键「数据传输」
流程:
- 在 Navicat 中右键点击源数据库 → 选择「数据传输」。
- 在弹出的窗口中设置目标数据库。
- 勾选需要传输的表,可以设置传输选项(结构、数据、结构+数据)。
- 点击开始,等待传输完成。
作用:
- 用于在不同数据库之间复制数据结构和/或数据,可以在同一服务器或跨服务器操作。
- 支持选择传输仅结构、仅数据、结构+数据。
- 可以跨数据库类型(如 MySQL → MariaDB,甚至 MySQL → PostgreSQL)进行迁移(视 Navicat 版本支持情况)。
优势:
- 操作简单、界面可视化,适合非命令行用户。
- 可自定义选择表、字段、过滤条件。
- 在数据迁移过程中支持保留主键、自增等属性。
2. 库 - 运行 SQL 文件/转储 SQL 文件
进入目标库,右键「运行 SQL 文件」/「转储 SQL 文件」
「运行 SQL 文件」
流程:
- 右键目标数据库 → 选择「运行 SQL 文件」。
- 浏览选择本地 SQL 文件。
- 点击开始运行,可查看执行日志。
作用:
- 将本地已有的 SQL 文件(如建表语句、插入语句等)在数据库中执行,快速完成结构或数据的导入。
优势:
- 高度可控,尤其适合从版本控制系统中取出的 SQL 脚本部署到数据库。
- 可选择执行全部或部分语句。
「转储 SQL 文件」
流程:
- 右键目标数据库 → 选择「转储 SQL 文件」→「结构和数据」/「仅结构」/「仅数据」。
- 设置保存路径和导出选项。
- 点击开始导出。
作用:
- 将当前库的结构和/或数据导出为 SQL 脚本文件,内容为标准的 SQL 命令(CREATE、INSERT 等)。
优势:
- 备份方便、可读性强、跨平台。
- 可用于迁移、版本对比、手动恢复等。
3. 表 - 转储 SQL 文件
进入目标表,右键「转储 SQL 文件」
流程:
- 在数据库中展开表列表,右键某张表 → 选择「转储 SQL 文件」。
- 选择导出内容(结构和数据、仅结构等)。
- 设置文件路径并导出。
作用:
- 和库级别转储类似,只不过是针对单个表进行结构和/或数据导出为 SQL 文件。
优势:
- 精细控制,仅导出所需表,便于单表迁移、备份或分享。
- 可用于微调部署(例如只迁移一个表到别的环境)。
4. 表 - 复制/粘贴
进入目标表,右键「复制」,进入另一个已连接数据库 → 表 → 右键「粘贴」
流程:
- 在源数据库中,右键目标表 → 选择「复制」。
- 到目标数据库中展开表节点,右键空白处 → 选择「粘贴」。
- 弹出提示后选择是否复制结构和数据,点击确定。
作用:
- 实现跨数据库复制表结构及数据(Navicat 会自动生成等效结构和插入语句)。
优势:
- 比数据传输更直观快捷,适用于快速测试或迁移表。
- 适合在多个数据库间同步开发环境数据。
5. 表 - 导出向导 / 导入向导
进入目标表,右键「导出向导 / 导入向导」 → SQL 格式和其他格式
重要提示
TXT、CSV、JSON、XML 等适用于 单表数据 导出/导入。
如需要导出后导入,建议导出 SQL 格式文件后再 运行 SQL 文件 以 完整数据库恢复,这是 .sql
文件的正确导入方式。
推荐选择
-
优先使用 Navicat 备份 SQL (
.sql
文件)- 可完整导入到 MySQL,支持表结构、数据、索引等
-
如果必须在 txt/csv/json/xml 选择:
- TXT 仅适合存储文本,不适合数据库导入导出
- CSV 适合简单表格,但不支持复杂类型
- JSON 适合嵌套数据,但恢复复杂
- XML 兼容性好,但体积大
格式对比
格式 | 兼容性 | 数据完整性 | 适用场景 |
---|---|---|---|
TXT | 低 | 仅文本数据,格式不固定 | 适合单列数据或简单日志存储,不推荐用于数据库备份 |
CSV | 中等 | 无法保留 NULL、二进制数据,不支持复杂结构 | 可用于 Excel 处理或简单数据交换,不推荐存储完整数据库 |
JSON | 高 | 适合嵌套数据结构,但不包含表结构 | 适用于 NoSQL 交换或 Web 开发,不适合关系型数据库完整备份 |
XML | 高 | 结构化数据,可存储层级关系 | 适用于跨平台数据交换,但体积大、解析复杂 |
更多信息
为什么 Navicat 的 "导入向导" 不支持 .sql
?
- 导入向导 主要用于 CSV、JSON、XML 这类数据格式,它们只是 表数据,不包含 数据库结构。
-
.sql
文件包含 完整的 SQL 语句(如CREATE TABLE
、INSERT INTO
),需要 运行 SQL 文件 而不是直接导入。
「导出向导」
流程:
- 右键某个表 → 选择「导出向导」。
- 选择导出格式(如 .sql、.csv、.xlsx)。
- 设置导出路径、编码格式、字段筛选等。
- 点击开始导出。
作用:将表数据导出为多种格式(如 SQL、CSV、Excel、JSON 等)。
优势:便于数据分析、对接第三方系统、生成报表。
「导入向导」
流程:
- 右键某个表 → 选择「导入向导」。
- 浏览选择需要导入的文件(如 Excel 表格)。
- 配置字段映射关系、编码、导入选项。
- 开始导入并查看结果。
作用:从外部文件导入数据到表中(支持 Excel、CSV、SQL 等)。
优势:方便录入业务数据或数据迁移。
.sql 格式
作用:
- 导出为标准 SQL 脚本,包括结构和/或数据,内容可以是 CREATE、INSERT 等。
优势:
- 可读性强,可手动修改。
- 适合数据库开发、部署、代码管理、版本控制。
其他格式(如 CSV、Excel、XML、JSON 等)
作用:
- 更适用于数据交互、报表处理、数据分析等场景。
优势:
- 便于与第三方系统、数据分析工具(如 Excel、Tableau、Python 脚本)对接。
- 可直接读取和编辑,便于非技术用户使用。
- 可导入回数据库,适合批量导入业务数据。
总结对照
操作类型 | 主要用途 | 适合场景 | 优势亮点 |
---|---|---|---|
数据传输 | 跨库或跨服务器传输数据/结构 | 迁移、同步环境 | 可视化选择表和内容、支持条件传输 |
运行 SQL 文件 | 执行已有 SQL 脚本 | 部署、初始化数据 | 快速还原、灵活控制 |
转储 SQL 文件(库或表) | 导出为 SQL 脚本 | 备份、版本控制、迁移 | 可读性强、便于手工操作 |
表复制 → 粘贴 | 快速复制结构和数据到其他库 | 快速迁移或复制某张表 | 操作简单,拖拽式体验 |
导入/导出向导(.sql vs 其他格式) | 数据导出/导入 | 报表、分析、第三方交互 | 多格式支持,兼顾结构化和半结构化数据 |
基本总结
✅ 如果是备份 &以后恢复 → 用 "运行 SQL 文件"(适用于 .sql
文件)。
✅ 如果是两个数据库之间迁移 → 用 "数据传输"。
了解更多
导出 SQL 格式文件 和 转储 SQL 文件 的区别
在 Navicat 中,"导出 SQL 格式文件" 和 "转储 SQL 文件" 看似相似,但它们的作用和适用场景有所不同。下面是两者的主要区别:
1. 导出 SQL 格式文件
路径:
在 Navicat 中,右键 某个表 → 导出向导 → SQL 格式。
特点:
- 只针对选定的表(不是整个数据库)。
-
只能导出数据(INSERT 语句),不会包含
CREATE TABLE
等结构信息。 - 适用于 部分数据的导出,而不是完整数据库备份。
- 适合需要把数据导入到其他已有结构的数据库中。
示例 SQL 文件(仅数据部分):
INSERT INTO `users` (`id`, `name`, `email`) VALUES (1, '张三', 'zhangsan@example.com');
INSERT INTO `users` (`id`, `name`, `email`) VALUES (2, '李四', 'lisi@example.com');
2. 转储 SQL 文件
路径:
在 Navicat 中,右键 数据库 → 转储 SQL 文件。
特点:
- 可以备份整个数据库(包括表结构和数据)。
- 可以选择导出结构(CREATE TABLE)、数据(INSERT INTO)、或者两者都导出。
- 适用于 完整备份和恢复数据库,推荐用于数据库迁移或长期备份。
-
.sql
文件可以直接用于恢复数据库,无需手动创建表结构。
示例 SQL 文件(包含结构和数据):
-- 创建表结构
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
);
-- 插入数据
INSERT INTO `users` (`id`, `name`, `email`) VALUES (1, '张三', 'zhangsan@example.com');
INSERT INTO `users` (`id`, `name`, `email`) VALUES (2, '李四', 'lisi@example.com');
什么时候用哪种?
需求 | 导出 SQL 格式文件 | 转储 SQL 文件 |
---|---|---|
只想导出某个表的数据 | ✅ 适合 | ❌ 不推荐 |
只想导出某个表的结构 | ❌ 不支持 | ✅ 适合 |
需要完整备份整个数据库(结构 + 数据) | ❌ 不支持 | ✅ 适合 |
需要迁移数据库到其他 MySQL 服务器 | ❌ 可能不完整 | ✅ 适合 |
只想导出某些数据,不要表结构 | ✅ 适合 | ✅ 但需要手动取消结构选项 |
总结
-
"导出 SQL 格式文件"
- 适用于 单个表的数据导出,但不包含表结构。
- 不能直接用于完整数据库恢复。
-
"转储 SQL 文件"
- 适用于 完整备份数据库(结构+数据)。
- 推荐用于数据库迁移、备份、恢复。
实现方式
功能 | 数据传输 | 转储 SQL 文件 |
---|---|---|
适用场景 | 直接迁移到另一个数据库(本地或远程) | 生成 .sql 备份文件,适合长期存储或跨服务器迁移 |
操作方式 | 直接连接源数据库和目标数据库进行传输 | 导出 .sql 文件后,再手动导入到目标数据库 |
迁移内容 | 表结构、数据、索引、视图、存储过程等(可选) | 结构+数据,可完全恢复 |
目标数据库 | 目标数据库必须可连接,且 Navicat 需支持 | 适用于断网、手动迁移等场景 |
速度 | 速度较快,直接在数据库间复制 | 取决于 .sql 文件大小,导入时受限于 MySQL 执行速度 |
适合哪些情况? | 两个数据库都可访问时,可直接迁移 | 跨服务器/远期备份,适用于备份或无法直接连接目标数据库的情况 |
结论
✅ 如果你能直接访问目标数据库,用 "数据传输",迁移更方便,速度更快。
✅ 如果要长期备份、跨服务器迁移,用 "转储 SQL 文件",然后手动导入。
0 条评论