一份超级详细的 Navicat 实操教程,覆盖更多实操细节和注意事项

一份超级详细的 Navicat 实操教程,覆盖更多实操细节和注意事项,我会从连接的进阶配置可视化建表SQL 语法深度解析常见问题排查等方面补充,确保你能彻底掌握!

一、数据库连接(以 MySQL 为例,含远程 / 特殊连接)

1. 基础连接(本地)

除了之前的基础步骤,补充细节:

  • 端口确认:若 MySQL 端口被修改(如非默认 3306),需先在 MySQL 配置文件(my.cnf/my.ini)中确认port值,再填入 Navicat。
  • 保存密码选项:勾选「保存密码」可避免每次连接重复输入,但注意电脑安全(公共设备不建议)。

2. 远程连接(含 SSH 隧道,企业常用)

若数据库部署在远程服务器(如阿里云 / 腾讯云),通常需通过SSH 隧道连接(避免直接暴露数据库端口):

  1. 新建 MySQL 连接时,切换到「SSH」标签页:
    • SSH 主机:远程服务器 IP(如121.xxx.xxx.xxx)。
    • SSH 端口:默认 22(若服务器修改过需对应填写)。
    • SSH 用户:服务器登录账号(如root)。
    • SSH 密码 / 密钥:选密码则填服务器登录密码;选密钥则上传.pem密钥文件(云服务器常用)。
  2. 回到「常规」标签页,主机名填localhost(因为 SSH 隧道会映射到服务器本地的 MySQL),其他参数(端口、用户名、密码)填服务器上的 MySQL 信息。
  3. 测试连接,成功后保存。

3. 连接失败排查

  • 提示「Can’t connect to MySQL server」:
    • 检查远程服务器防火墙是否开放 MySQL 端口(3306)或 SSH 端口(22)。
    • 确认 MySQL 授权远程访问(需在服务器执行:GRANT ALL ON *.* TO '用户名'@'%' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;)。
  • 提示「Access denied」:用户名 / 密码错误,或 MySQL 未授权该用户从当前 IP 访问。

二、新建数据库(细节补充)

  1. 右键服务器→「新建数据库」后,重点参数解析:
    • 数据库名:只能用字母、数字、下划线,不能以数字开头(如test_db合法,123db不建议)。
    • 字符集
      • utf8:最多存 3 字节字符,不支持 emoji;
      • utf8mb4:是utf8的超集,支持 4 字节字符(如 emoji、特殊中文),强烈推荐
    • 排序规则
      • utf8mb4_general_ci:通用排序,不区分大小写(如Aa视为相同),性能好;
      • utf8mb4_bin:二进制排序,区分大小写和字符编码,精准但性能稍差;
      • utf8mb4_unicode_ci:遵循 Unicode 标准排序,适合多语言场景。
  2. 新建后,双击数据库名即可「打开」,左侧会显示该库下的表、视图等对象。

三、表的创建(可视化 + SQL 双方式)

方式 1:可视化建表(无需写 SQL,新手友好)

  1. 打开数据库后,点击顶部「表」→「新建表」,进入表设计界面:
  2. 逐行配置字段:
    • 列名:字段名称(如idusername)。
    • 类型:选择数据类型(如INTVARCHAR(50)),右侧可配置长度 / 精度。
    • 是否为空:取消勾选则为NOT NULL(非空约束)。
    • 默认值:如给create_time设默认值CURRENT_TIMESTAMP(当前时间)。
    • 主键:选中id字段,点击工具栏「主键」按钮(🔑),再勾选「自动递增」(AUTO_INCREMENT)。
  3. 高级约束(如唯一键):
    • 切换到「索引」标签页→点击「+」→「索引类型」选UNIQUE→勾选要设为唯一的字段(如username)→命名索引(如idx_username)。
  4. 保存表:点击「保存」,输入表名(如user_info),确认后表即创建完成。

方式 2:SQL 建表(深度解析语法 + 示例)

1. 数据类型与约束详解
类型 / 约束作用说明
INT整数类型,范围 - 2147483648~2147483647,适合存 ID、年龄等。
VARCHAR(n)可变长度字符串,n为最大长度(如VARCHAR(50)最多存 50 个字符),节省空间。
DATETIME日期时间类型,格式YYYY-MM-DD HH:MM:SS,适合存创建 / 更新时间。
NOT NULL约束字段不能为空,插入数据时必须给值。
UNIQUE约束字段值唯一(如用户名不能重复),可建多个唯一键。
PRIMARY KEY主键(唯一标识记录),一张表只能有一个主键,默认非空且唯一。
AUTO_INCREMENT仅用于整数主键,插入数据时自动生成递增数值(无需手动填 ID)。
DEFAULT字段默认值,未插入时自动填充(如age DEFAULT 0)。
FOREIGN KEY外键(关联其他表),如user_id关联user_info表的id
2. 带外键的建表示例(多表关联)

比如创建「订单表」关联「用户表」:

-- 先创建用户表(主表)
CREATE TABLE user_info (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    age INT DEFAULT 0,
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;  -- 指定存储引擎和字符集

-- 再创建订单表(从表),通过user_id关联用户表
CREATE TABLE order_info (
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    order_name VARCHAR(100) NOT NULL,
    price DECIMAL(10,2) NOT NULL,  -- 小数类型(总位数10,小数位2),适合存金额
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    -- 外键约束:user_id必须存在于user_info表的id中
    FOREIGN KEY (user_id) REFERENCES user_info(id)
        ON DELETE CASCADE  -- 主表记录删除时,从表关联记录也删除
        ON UPDATE CASCADE  -- 主表id更新时,从表user_id同步更新
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
3. 执行 SQL 的细节
  • 选中要执行的 SQL 语句(可按Ctrl+A全选),点击「运行」(▶️)或按Ctrl+R
  • 若执行失败,底部「日志」面板会显示错误原因(如「字段名重复」「外键关联失败」),需根据提示修正。

四、数据插入(SQL + 可视化,含注意事项)

方式 1:可视化插入

  1. 双击表名(如user_info)打开表数据界面→点击「+」号新增一行→填写字段值(id会自动生成,无需填)→点击「保存」(💾)。

方式 2:SQL 插入(进阶示例 + 注意事项)

1. 基础插入(指定字段)
-- 插入时指定字段(推荐,字段顺序可任意)
INSERT INTO user_info (username, age) VALUES ('张三', 25);
2. 省略字段的插入(需按表字段顺序填值)
-- 若省略字段,需按表的字段顺序(id, username, age, create_time)填值,自增字段用NULL占位
INSERT INTO user_info VALUES (NULL, '李四', 30, DEFAULT);  -- DEFAULT表示用默认值
3. 批量插入(高效)
INSERT INTO user_info (username, age) 
VALUES 
('王五', 28),
('赵六', 32),
('孙七', 22);  -- 最后一行末尾用分号
4. 插入注意事项
  • 值的类型匹配:如ageINT,不能插入字符串(如'abc');priceDECIMAL,不能插入超过位数的值(如12345678901.23会超出DECIMAL(10,2))。
  • 非空约束:若字段设了NOT NULL,插入时必须给值(如username不能不填)。
  • 唯一约束:若插入重复的username,会报错「Duplicate entry」,需确保值唯一。
5. 验证插入结果
-- 查询所有数据
SELECT * FROM user_info;

-- 条件查询(如查年龄>25的用户)
SELECT username, age FROM user_info WHERE age > 25;

五、常见问题与解决

  1. 建表时报「Unknown storage engine ‘InnoDB’」
    • 原因:MySQL 未启用 InnoDB 引擎。
    • 解决:修改 MySQL 配置文件,确保default-storage-engine=InnoDB,重启 MySQL 服务。
  2. 插入中文乱码
    • 原因:数据库 / 表的字符集不是utf8mb4,或连接字符集不匹配。
    • 解决:
      • 建库 / 建表时指定CHARSET=utf8mb4
      • 新建 Navicat 连接时,切换到「高级」标签页,设置「字符集」为utf8mb4
  3. 外键插入失败
    • 原因:插入的user_iduser_info表中不存在。
    • 解决:先插入主表(user_info)数据,再插入从表(order_info)数据。

总结

  1. 连接数据库:本地用常规配置,远程优先用 SSH 隧道;连接失败先查防火墙、权限和端口。
  2. 建表:可视化适合新手,SQL 适合复杂需求;务必选utf8mb4字符集,合理用主键 / 外键约束。
  3. 插入数据:批量插入更高效,需保证值的类型与约束匹配;插入后用SELECT验证结果。

掌握这些细节后,你可以进一步尝试表的修改(ALTER TABLE)、数据更新(UPDATE)和删除(DELETE),Navicat 的「查询构建器」还能可视化写 SQL 哦!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涔溪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值