1. 库 - 数据传输

进入目标库,右键「数据传输」

流程

  1. 在 Navicat 中右键点击源数据库 → 选择「数据传输」。
  2. 在弹出的窗口中设置目标数据库
  3. 勾选需要传输的表,可以设置传输选项(结构、数据、结构+数据)。
  4. 点击开始,等待传输完成。

作用

  • 用于在不同数据库之间复制数据结构和/或数据,可以在同一服务器或跨服务器操作。
  • 支持选择传输仅结构、仅数据、结构+数据
  • 可以跨数据库类型(如 MySQL → MariaDB,甚至 MySQL → PostgreSQL)进行迁移(视 Navicat 版本支持情况)。

优势

  • 操作简单、界面可视化,适合非命令行用户。
  • 可自定义选择表、字段、过滤条件。
  • 在数据迁移过程中支持保留主键、自增等属性。

2. 库 - 运行 SQL 文件/转储 SQL 文件

进入目标库,右键「运行 SQL 文件」/「转储 SQL 文件」

「运行 SQL 文件」

流程

  1. 右键目标数据库 → 选择「运行 SQL 文件」。
  2. 浏览选择本地 SQL 文件。
  3. 点击开始运行,可查看执行日志。

作用

  • 将本地已有的 SQL 文件(如建表语句、插入语句等)在数据库中执行,快速完成结构或数据的导入。

优势

  • 高度可控,尤其适合从版本控制系统中取出的 SQL 脚本部署到数据库。
  • 可选择执行全部或部分语句。

「转储 SQL 文件」

流程

  1. 右键目标数据库 → 选择「转储 SQL 文件」→「结构和数据」/「仅结构」/「仅数据」。
  2. 设置保存路径和导出选项。
  3. 点击开始导出。

作用

  • 将当前库的结构和/或数据导出为 SQL 脚本文件,内容为标准的 SQL 命令(CREATE、INSERT 等)。

优势

  • 备份方便、可读性强、跨平台。
  • 可用于迁移、版本对比、手动恢复等。

3. 表 - 转储 SQL 文件

进入目标表,右键「转储 SQL 文件」

流程

  1. 在数据库中展开表列表,右键某张表 → 选择「转储 SQL 文件」。
  2. 选择导出内容(结构和数据、仅结构等)。
  3. 设置文件路径并导出。

作用

  • 和库级别转储类似,只不过是针对单个表进行结构和/或数据导出为 SQL 文件。

优势

  • 精细控制,仅导出所需表,便于单表迁移、备份或分享。
  • 可用于微调部署(例如只迁移一个表到别的环境)。

4. 表 - 复制/粘贴

进入目标表,右键「复制」,进入另一个已连接数据库 → 表 → 右键「粘贴」

流程

  1. 在源数据库中,右键目标表 → 选择「复制」。
  2. 到目标数据库中展开表节点,右键空白处 → 选择「粘贴」。
  3. 弹出提示后选择是否复制结构和数据,点击确定。

作用

  • 实现跨数据库复制表结构及数据(Navicat 会自动生成等效结构和插入语句)。

优势

  • 比数据传输更直观快捷,适用于快速测试或迁移表。
  • 适合在多个数据库间同步开发环境数据。

5. 表 - 导出向导 / 导入向导

进入目标表,右键「导出向导 / 导入向导」SQL 格式和其他格式

重要提示

TXT、CSV、JSON、XML 等适用于 单表数据 导出/导入。

如需要导出后导入,建议导出 SQL 格式文件后再 运行 SQL 文件完整数据库恢复,这是 .sql 文件的正确导入方式。

推荐选择

  1. 优先使用 Navicat 备份 SQL (.sql 文件)
    • 可完整导入到 MySQL,支持表结构、数据、索引等
  2. 如果必须在 txt/csv/json/xml 选择:
    • TXT 仅适合存储文本,不适合数据库导入导出
    • CSV 适合简单表格,但不支持复杂类型
    • JSON 适合嵌套数据,但恢复复杂
    • XML 兼容性好,但体积大

格式对比

格式 兼容性 数据完整性 适用场景
TXT 仅文本数据,格式不固定 适合单列数据或简单日志存储,不推荐用于数据库备份
CSV 中等 无法保留 NULL、二进制数据,不支持复杂结构 可用于 Excel 处理或简单数据交换,不推荐存储完整数据库
JSON 适合嵌套数据结构,但不包含表结构 适用于 NoSQL 交换或 Web 开发,不适合关系型数据库完整备份
XML 结构化数据,可存储层级关系 适用于跨平台数据交换,但体积大、解析复杂

更多信息

为什么 Navicat 的 "导入向导" 不支持 .sql

  • 导入向导 主要用于 CSV、JSON、XML 这类数据格式,它们只是 表数据,不包含 数据库结构
  • .sql 文件包含 完整的 SQL 语句(如 CREATE TABLEINSERT INTO),需要 运行 SQL 文件 而不是直接导入。

「导出向导」

流程

  1. 右键某个表 → 选择「导出向导」。
  2. 选择导出格式(如 .sql、.csv、.xlsx)。
  3. 设置导出路径、编码格式、字段筛选等。
  4. 点击开始导出。

作用:将表数据导出为多种格式(如 SQL、CSV、Excel、JSON 等)。
优势:便于数据分析、对接第三方系统、生成报表。

「导入向导」

流程

  1. 右键某个表 → 选择「导入向导」。
  2. 浏览选择需要导入的文件(如 Excel 表格)。
  3. 配置字段映射关系、编码、导入选项。
  4. 开始导入并查看结果。

作用:从外部文件导入数据到表中(支持 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 服务器 ❌ 可能不完整 ✅ 适合
只想导出某些数据,不要表结构 ✅ 适合 ✅ 但需要手动取消结构选项

总结

  1. "导出 SQL 格式文件"
    • 适用于 单个表的数据导出,但不包含表结构。
    • 不能直接用于完整数据库恢复
  2. "转储 SQL 文件"
    • 适用于 完整备份数据库(结构+数据)。
    • 推荐用于数据库迁移、备份、恢复

实现方式

功能 数据传输 转储 SQL 文件
适用场景 直接迁移到另一个数据库(本地或远程) 生成 .sql 备份文件,适合长期存储或跨服务器迁移
操作方式 直接连接源数据库和目标数据库进行传输 导出 .sql 文件后,再手动导入到目标数据库
迁移内容 表结构、数据、索引、视图、存储过程等(可选) 结构+数据,可完全恢复
目标数据库 目标数据库必须可连接,且 Navicat 需支持 适用于断网、手动迁移等场景
速度 速度较快,直接在数据库间复制 取决于 .sql 文件大小,导入时受限于 MySQL 执行速度
适合哪些情况? 两个数据库都可访问时,可直接迁移 跨服务器/远期备份,适用于备份或无法直接连接目标数据库的情况

结论

如果你能直接访问目标数据库,用 "数据传输",迁移更方便,速度更快。
如果要长期备份、跨服务器迁移,用 "转储 SQL 文件",然后手动导入。


友情提示:本站所有文章,如无特殊说明或标注,均为何星星原创发布。与此同时,趋于近年来本站的文章内容频繁被他站盗用与机器采集,现已全局禁用网站文字内容操作,了解详情或转载文章请 点此 继续!

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注