Navicat学习01|初步应用实践

📚 一、功能解析:Navicat 是什么?能做什么?

Navicat 是一款强大的数据库管理和开发工具,支持 MySQL、PostgreSQL、Oracle、SQL Server 等多种数据库。

本案使用的是 Navicat Premium(多数据库通用版),

连接的是本地 MySQL 数据库 ama_local

1.2 核心功能模块

功能区 图标/位置 作用
连接管理 左侧"我的连接"树形结构 管理多个数据库连接(如 ama_local, localhost 等)
表操作 "表"标签页 + 工具栏"表"按钮 创建、查看、编辑数据表结构
查询编写 "新建查询"按钮 编写和执行 SQL 语句
数据导出 右键表 → "转储 SQL 文件" 导出表结构或数据为 .sql 文件(如你的 demo.sql)
备份还原 "备份"按钮 定期备份整个数据库
模型设计 "模型"按钮 可视化设计 ER 图、表关系

🛠️ 二、案例操作步骤:以学生表为例的完整工作流

以截图中的 student 表为例,演示从创建连接到导出的全流程。


步骤 1:建立数据库连接

  1. 点击左上角 "连接" 按钮(闪电图标)
  2. 选择 MySQL
  3. 填写连接信息:
    • 连接名称:ama_local
    • 主机:127.0.0.1
    • 端口:3306
    • 用户名:root
    • 密码:输入你的密码
  4. 点击 "测试连接" → 成功后点击 "确定"

✅ 提示:如果报错 1045,请检查密码是否正确


步骤 2:创建数据库和表

2.1 创建数据库
  1. 右键 ama_local 连接 → "新建数据库"
  2. 输入数据库名:demo
  3. 字符集选择:utf8mb4(推荐)
  4. 点击 "确定"
2.2 创建 student 表
  1. 展开 demo 数据库 → 右键 "表""新建表"
  2. 在"设计表"界面添加字段:
字段名 类型 长度 允许 NULL 注释
id int - ❌ 否 主键,自增
number varchar 50 ✅ 是 学号
name varchar 50 ✅ 是 姓名
gender varchar 6 ✅ 是 性别
createDt datetime - ✅ 是 创建日期
  1. 设置主键:选中 id 行 → 勾选 "主键""自动递增"
  2. 点击 "保存" → 输入表名 student

⌨️ 快捷键技巧:

  • 插入字段上方:Insert
  • 插入字段下方:⬇️
  • 删除字段:Delete
  • 保存:Ctrl+S

步骤 3:插入测试数据

方法一:图形化界面插入
  1. 双击打开 student 表 → 进入"数据"视图

  2. 直接在空白行输入数据:

    复制代码
    number: 2026021701
    name: A
    gender: F
    createDt: 2026-02-17 23:02:43
  3. Enter 自动保存

方法二:SQL 语句插入
  1. 点击 "新建查询"

  2. 输入 SQL:

    复制代码
    INSERT INTO student (number, name, gender, createDt) 
    VALUES ('2026021702', 'B', 'F', '2026-02-17 23:03:16');
  3. 点击 "运行" 按钮(绿色三角形)


步骤 4:导出数据为 SQL 文件(如 demo.sql)

  1. 右键 student 表 → "转储 SQL 文件"
  2. 选择:
    • 结构和数据(同时导出建表语句和 INSERT 语句)
    • 编码:UTF-8
    • 目标文件:选择保存路径(如 demo.sql
  3. 点击 "开始" → 生成成功!

📄 demo.sql包含:

  • 建表语句(CREATE TABLE)
  • 插入数据语句(INSERT INTO)
  • 字符集设置(SET NAMES utf8mb4)

截图是 Navicat Premium 导出的 SQL 转储文件(demo.sql),我们用红框标出了三个关键区域:

  1. 📄 文件头信息块(包含服务器、版本、主机等元数据)
  2. 表结构注释-- Table structure for student
  3. 📥 数据记录注释-- Records of student

1️⃣ 文件头信息块(红色框1)

包含的信息:
  • ama_local → 连接名称(自定义,非真实服务器名)
  • MySQL 9.6.0 → 数据库版本(公开信息)
  • 127.0.0.1:3306 → 本地回环地址 + 默认端口(说明是本地开发环境)
  • demo → 数据库名(通常是测试库)
  • 时间戳 → 导出时间

2️⃣ 表结构部分(红色框2)

包含的信息:
  • 表名:student
  • 字段名及类型:id, number, name, gender, createDt
  • 注释:中文说明字段用途

3️⃣ 数据记录部分(红色框3)

包含的信息:
  • 学号:2026021701 ~ 2026021705
  • 姓名:A, B, C, D, E
  • 性别:F / M
  • 创建时间:时间

步骤 5:导入 SQL 文件到其他环境

  1. 在新数据库中右键 → "运行 SQL 文件"(如果不在数据库运行,就会自动保存到sys或其他的系统表中)
  2. 选择之前导出的 demo.sql
  3. 点击 "开始" → 自动执行所有语句

💡 应用场景:迁移数据、部署项目、团队协作共享数据结构


🧩 三、知识扩展:进阶技巧与最佳实践

3.1 常用快捷键速查表

操作 快捷键 说明
新建查询 Ctrl+Q 快速打开查询窗口
执行查询 Ctrl+R 运行当前 SQL 语句
格式化 SQL Ctrl+Shift+F 美化缩进,提高可读性
刷新对象 F5 更新左侧树形结构
查找替换 Ctrl+F / Ctrl+H 在查询编辑器中搜索
撤销/重做 Ctrl+Z / Ctrl+Y 修改表结构时可撤销

3.2 表设计最佳实践

命名规范
  • 表名:小写 + 下划线,如 user_info, order_detail
  • 字段名:语义化,如 created_at, user_id, is_active
  • 避免保留字:不要用 order, group, select 作表名
数据类型选择
需求 推荐类型 说明
整数 ID INT AUTO_INCREMENT 主键首选
短文本 VARCHAR(50) 姓名、邮箱等
长文本 TEXT 文章内容、描述
时间戳 DATETIMETIMESTAMP 记录创建/更新时间
布尔值 TINYINT(1) 0=否,1=是
索引优化
  • 主键自动创建聚簇索引
  • 频繁查询的字段(如 user_id, status)可手动添加索引
  • 右键表 → "索引" → "新建索引"

3.3 安全与性能建议

权限控制
  • 不要始终用 root 用户操作生产库

  • 创建专用用户并限制权限:

    复制代码
    CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'strong_password';
    GRANT SELECT, INSERT, UPDATE ON demo.* TO 'app_user'@'localhost';
备份策略
  • 定期使用"备份"功能导出 .nb3 文件(Navicat 专有格式)
  • 结合"自动运行"设置定时任务
性能监控
  • 使用"服务器监控"查看 CPU、内存、连接数
  • 慢查询日志定位瓶颈 SQL

🎯 四、实战练习:巩固所学知识

练习 1:创建图书管理系统表

复制代码
-- 创建 books 表
CREATE TABLE books (
    id INT NOT NULL AUTO_INCREMENT,
    title VARCHAR(100) NOT NULL COMMENT '书名',
    author VARCHAR(50) COMMENT '作者',
    price DECIMAL(10,2) COMMENT '价格',
    published_date DATE COMMENT '出版日期',
    is_available TINYINT(1) DEFAULT 1 COMMENT '是否可借',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 插入测试数据
INSERT INTO books (title, author, price, published_date) 
VALUES ('Python编程入门', '张三', 59.90, '2025-01-15');

练习 2:导出并重新导入

  1. books 表导出为 books_backup.sql
  2. 删除原表
  3. 重新导入 books_backup.sql
  4. 验证数据完整性

📈 五、常见问题解答(FAQ)

Q1: 为什么导出 SQL 时出现中文乱码?

✅ 解决:确保导出时选择 UTF-8 编码,且数据库字符集为 utf8mb4

Q2: 如何批量修改多个字段?

✅ 解决:在"设计表"界面按住 Ctrl 多选字段 → 右键统一修改属性

Q3: 能否比较两个表结构差异?

✅ 解决:使用"工具"→"结构同步"功能对比不同数据库的表

✅ 解决:切换到"函数"标签页 → 右键存储过程 → "调试"


🏁 六、总结与下一步学习方向

你已经掌握了:

✅ 数据库连接与管理

✅ 表的创建、修改、删除

✅ 数据的增删改查(CRUD)

✅ SQL 文件的导出与导入

✅ 基本快捷键与操作技巧

下一步可以学习:

🔹 复杂查询(JOIN, GROUP BY, 子查询)

🔹 视图、触发器、存储过程

🔹 事务管理与锁机制

🔹 数据库优化与索引调优

🔹 Navicat 高级功能(模型设计、数据同步、报表生成)

相关推荐
山岚的运维笔记1 小时前
SQL Server笔记 -- 第65章:迁移 第66章:表值参数
数据库·笔记·sql·microsoft·sqlserver
番茄去哪了2 小时前
苍穹外卖day05----店铺营业状态设置
java·数据库·ide·redis·git·maven·mybatis
暮色妖娆丶4 小时前
Spring 源码分析 事务管理的实现原理(下)
数据库·spring boot·spring
暮色妖娆丶4 小时前
Spring 源码分析 事务管理的实现原理(上)
数据库·spring boot·spring
LaughingZhu4 小时前
Product Hunt 每日热榜 | 2026-02-18
大数据·数据库·人工智能·经验分享·搜索引擎
是吕先森4 小时前
mysql基础
数据库·mysql·oracle
Zzz 小生5 小时前
LangChain Tools:工具使用完全指南
jvm·数据库·oracle
SQL必知必会6 小时前
SQL 计算百分位数和中位数
数据库·sql
亓才孓6 小时前
[SpringBoot]UnableToConnectException : Public Key Retrieval is not allowed
java·数据库·spring boot