《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 苏三说技术 「苏三说技术」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

前言

对于开发、测试、DBA、运维来说,数据库再熟悉不过了。

很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:

图片

用过的人基本都会吐槽,太low了,极其不好用。

  1. 写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
  2. 看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
  3. 对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
  4. 很难看出表和表之间是怎样关联的。
  5. 导入导出数据就更不方便了。

有没有一款好用的工具,让我们能更高效的操作数据呢?

这就是今天我要推荐给大家的数据库神器:Navicat Premium

下面我们一起看看Navicat Premium有哪些牛逼的功能。

1. 支持多种数据库

在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。

点击工具栏中Connection上的加号

图片

就会弹出如下窗口:

图片

从图中它支持7种常规数据库,包括我们经常使用的mysqlsql serveroracle,还有mongodb等。此外,还支持8种数据库云。

2. 轻松管理连接

2.1 连接数据库

之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:

mysql -h127.0.0.1 -uroot -p123456;

每次都需要输入连接地址、用户名、密码,不觉得烦吗?

恭喜你,Navicat Premium自带保存密码的功能:

图片

只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。

以后就能通过界面双击Connection Name,直接访问数据库了:

图片

nice。

2.2 显示指定实例

有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?

这时可以在databases tab页下勾选 Use custom database list:

图片

勾选我们想看到的数据库实例。

这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。

图片

3. 方便查询表信息

以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:

show tables;

图片

不好意思,那已经是过去式了。

现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。

如果想看数据,选中双击某张表就可以了:

图片

如果想看表信息,可以通过右边的窗口:

图片里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。

如果想看表结构,只需切换成ddl选项:

图片这样就能看到该表完整的ddl语句。

比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。

当然我们通过如下命令:

show create table jump_log;

也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。

4. 数据库实例的ddl操作

通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。

右键单击某个数据库实例,就会弹出如下窗口:图片

里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。

4.1 数据库的创建和修改

创建和修改实例时,只需要输入以下三个字段:图片

4.2 mysql客户端

在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:图片

4.3 执行外部脚本

如果选择Execute SQL File,能执行外部的sql脚本:图片

4.4 表导出

如果选择Dump SQL File,能导出所有表的数据:

图片

目前支持两种:

  1. 导出表结构 和 数据
  2. 只导出表结构

最终会导出到xxx.sql文件中:

图片

从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。

4.5 打印数据库

如果选择print database,能生成pdf文件:

图片里面包含了表的信息,方面打印出来。

4.6 转换model

如果选择Reverse Database To Model,能弹窗表的model窗口:图片表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。

4.7 找到数据

如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:图片比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?

5. 表的ddl操作

相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:图片

如果选择Open Table,会弹出查看数据的窗口:图片这个功能后面会详细说。

5.1 表的设计窗口

如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:图片在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。

它支持的字段类型有:图片实在太多了,列举不完。

如果在该窗口中选择Index tab页,则会弹出索引设计窗口:图片在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。

如果选择Options tab页,则会弹窗表信息的窗口:图片可以设置存储引擎、字段增长基础值、字符集等属性。

Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。

如果选择SQL Preview,也能看到该表完整的ddl语句:

图片

5.2 表的删除

上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?

主要是通过如下三个功能实现的:图片

  1. Delete Table:物理删除表
  2. Empty Table:清空表中的数据,但表任然保留
  3. Truncate Table:逻辑删除表

5.3 表的复制

有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:图片

如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:

图片

里面包含的数据跟原表一样:图片

如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:图片

5.4 数据导入

在实际工作当中,我们经常需要导入数据。

比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:图片目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。

我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:图片

可以新加一张表字段跟其对应:图片然后选择刚刚的excel文件上传:

图片

当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:

图片

接下来,还需选择excel文件的字段相对应的表中的字段:

图片

然后发现已经导入成功:

图片

查一下表,已经有数据了:

图片

5.5 数据导出

在实际工作当中,数据导出的需求偶尔也会遇到。

这时可以选择Export Wizard,会弹如下窗口:

图片

我们选择导出到SQL script file中,然后会弹窗如下窗口:

图片

可以选择要导出的表和对应的sql文件名称。

接下来,选择要导出的字段,允许只导出某些指定字段:

图片

然后发现已经导出成功:

图片

在这个路径下多了一个category.sql文件:

图片

其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?

6. 表的查询操作

查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。

选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:

图片

6.1 执行sql语句:

在窗口中可以选择一个数据库连接 和 数据库实例:

图片

在中间的空白区域,我们能编写sql语句:

图片

点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。

虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。

图片

6.2 保存sql语句:

有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。

这时我们如何保存该sql语句呢?图片只需点击上图中的保存按钮。

这样以后就能在Queries中非常方便得找到该sql了:

图片

6.3 快速关联表

我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。

图片这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。

难道还有更高效的方式?

点击下图中的按钮:

图片

会弹窗如下窗口:

图片在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。

然后在右边窗口中选择做的关联:

图片

点击ok之后,会自动生成sql语句:

图片太牛逼了。

6.4 格式化sql语句

有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:

图片

看起来非常不直观,这时可以点击下图的按钮优化该sql:

图片

优化后的效果如图:

图片

感觉瞬间优雅多了。

6.5 执行计划

有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:

图片

这样执行后,就能看到执行计划了:

图片

但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:

图片

我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。

6.6 切换展示方式

我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:‘’

图片

该字段展示的数据显示不太完整。

这时可以切换到form view模式:

图片

然后在弹窗的窗口中点击下图中按钮:

图片

就会在下方出现完整的数据了。

6.7 新增和删除数据

我们在新增数据时,只需点击下图中的按钮:

图片

就会在一行空数据,然后在里面填值即可。

同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:

图片

当然为了安全考虑,会先弹出一个确认窗口。

其实Navicat Premium的功能还有很多很多,我不可能一一列举完,在这里只是抛砖引玉。

文章目录
  1. 1. 前言
  2. 2. 1. 支持多种数据库
  3. 3. 2. 轻松管理连接
    1. 3.1. 2.1 连接数据库
    2. 3.2. 2.2 显示指定实例
  4. 4. 3. 方便查询表信息
  5. 5. 4. 数据库实例的ddl操作
    1. 5.1. 4.1 数据库的创建和修改
    2. 5.2. 4.2 mysql客户端
    3. 5.3. 4.3 执行外部脚本
    4. 5.4. 4.4 表导出
    5. 5.5. 4.5 打印数据库
    6. 5.6. 4.6 转换model
    7. 5.7. 4.7 找到数据
  6. 6. 5. 表的ddl操作
    1. 6.1. 5.1 表的设计窗口
    2. 6.2. 5.2 表的删除
    3. 6.3. 5.3 表的复制
    4. 6.4. 5.4 数据导入
    5. 6.5. 5.5 数据导出
  7. 7. 6. 表的查询操作
    1. 7.1. 6.1 执行sql语句:
    2. 7.2. 6.2 保存sql语句:
    3. 7.3. 6.3 快速关联表
    4. 7.4. 6.4 格式化sql语句
    5. 7.5. 6.5 执行计划
    6. 7.6. 6.6 切换展示方式
    7. 7.7. 6.7 新增和删除数据