百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

为Navicat正名,Navicat完全使用手册(上)

wxin55 2024-10-27 15:54 11 浏览 0 评论

之前给小伙伴们推荐一款数据库开发工具DataGrip


最近使用了DataGrip一段时间,发现它并不适合我,因为我平时不仅仅要写代码,也要负责数据仓库的建设和数据库管理的一些工作。


这里给小伙伴们罗列几个我在使用DataGrip中一些不足的地方:

  • 用户体验并不十分友好,你需要花费一些时间去学习如何使用它
  • 和相似的工具比较,它运行并不迅速,当处理大容量数据库的时候会比较缓慢,将耗费GB等级的内存
  • 完全加载本地数据库数据,如果你的数据库数据较多,可能等它加载完成,你差不多要吃午饭了
  • 导入导出功能有待完善

最后还是滚去用Navicat了


Navicat的功能非常多,这里为了让小伙伴们一一掌握,分为多个篇章具体讲述。


目录

  • 安装Navicat
  • 连接不同数据库
  • 创建数据库
  • 数据传输
  • 导出表结构
  • 生成数据字典
  • 查找数据或表名
  • 生成E-R模型

注:以上功能无需书写任何SQL代码


安装Navicat

因为工作原因,需要经常连接不同的数据库,这里我安装的是Navicat Premium版。

安装过程很简单,只要你能看懂中文,不停的下一步,等待安装完成即可。



连接不同数据库

这里分别介绍Oracle,MySQL,SQL Server这三种数据库的连接方法


连接Oracle

在连接Oracle之前我们需要先配置一下OCI文件,具体如下:

点开主菜单里的【工具】——【选项...】,在弹出的对话框中找的OCI选项



这里就要把你安装的oracle的安装目录下的bin文件夹里面的oci.dll文件导入

E:\software\oracle\Oracle_win64\product\11.2.0\dbhome_1\BIN\oci.dll

以上是我的安装目录下的文件,大家根据自己的安装目录不同来导进来

导进来之后就重启Navicat,重启后会自动生效。

重启Navicat后,点击菜单栏的连接,选择Oracle,如下图:


在弹出的对话框中做如下配置,其中连接名可以随意起,然后输入你要连接的主机名或IP地址,最后输入账号密码。


如果你是使用DBA角色登录的,还需要点开高级选项卡,将角色选为DBA


配置完了以后,我们可以点击连接测试


这样Oracle的连接就配置好了。


连接MySQL和SQL Server

MySQL和SQL Server的连接相对比较简单,只需要输入主机名或IP地址,账号密码即可,具体如下图:



配置好后,点击连接测试,在弹出连接成功窗口就表示我们配置好了。

数据库连接成功后,下面是各个功能的介绍,我们以SQL Server数据库作为案例来介绍各个功能的使用。


创建数据库

右键我们刚新建的数据库连接——选择【新建数据库...】即可开始创建数据库了。


可以根据你的要求来进行配置,配置完以后,还可以在【SQL预览】看到完整的SQL代码:



数据传输

数据传输,顾名思义就是将数据从其他地方传输到当前数据库,例如我们将SQL_Road数据库中的数据传输到刚才新建的Test数据库中。


右键刚才创建好的Test数据库,在弹出的选项中选择【数据传输...】,在弹出的窗口中我们配置源数据库为【SQL_Road】,目标数据库配置为【Test】,这样就可以将SQL_Road中的对象传输到Test了,支持传输的对象包括:表,视图,函数和存储过程,具体如下图:


点击开始即可开始进行数据传输,传输效率还是很快的,即使你的数据量很大,也可以使用该方法进行数据传输,这里使用了不到2秒钟就将整个数据库对象迁移到新的数据库中了。


此外如果你想导出整个数据库中的对象到文件,也可以使用该方法,只需要将方式改为文件即可,如下图:


如果你想自定义导出的内容,可以点击该窗口的【高级】选项进行自定义配置,如下图:


配置完成后,点击开始,就会将你选择的数据库对象以脚本的形式导出到文件中。

但是数据传输到文件有个不足的地方,就是会将数据记录也会一并导出,而很多时候,我们其实只需要表结构,那么我们可以使用下面的这个功能。

转储SQL文件

双击打开数据库后,我们右键架构名dbo,在弹出的选项中选择【转储SQL文件...】,这里还有两个子选项:【结构和数据...】和【仅结构...】,如下图:


他们的区别就是一个有数据记录,一个没有数据记录,如果你只要数据结构可以只选择【仅结构...】,这样就可以大大节省导出时间了。

打印模式

做数据库仓库往往面对的不是几张表,往往是成百上千张数据表,该怎么维护对DBA是个非常头疼的事,如果有个数据表结构或数据字典之类的就非常完美了。

打印模式可以完美的生成所有表的数据表结构的。这里我们选择表数量较多的数据库ReportServer。右键dbo后,选择【打印模式...】,如下图:


可以看到右侧窗口里面出现了所有数据表的表结构,如下图:


足足有10页之多,我们点击左上方的【打印】,将表结构打印成PDF文件,就可以得到一份非常完成的数据字典了,如下图:


内容中主键和索引也有仔细的标注出来,其中P代表主键,下面的index表示索引

这个功能绝对是一个神器!

在模式中查找

这个功能主要用来查找数据或结果,当你需要从当前数据库中查找数据记录或对象中包含某些字符时,可以使用该功能,具体如下:


在弹出的对话框中,我们查找pre的结构,就可以将当前数据库符合要求的的所有对象都查找出来,如下图:



逆向模式到模型

这又是一个神仙技能,谁用谁知道,右键dbo在弹出的选项中选择【逆向模式到模型..】,如下图:


它可以将当前数据库中创建的所有表,以E-R图的模型清楚的告诉你每个表之间的关联关系,包括主外键,表结构,关联关系等,如下图:


你以为就这?

还支持模型转换,模型导出,说白了就是你可以将该模型转换成其他数据库的模型,从SQL Server转换成MySQL,Oracle,Postgresql都可以。点击左上角的三短横,选择【文件】——【模型转换】,如下图:


在弹出的对话框中选择你要转换的类型,比如我们想转换成MySQL 5.6的,如下图:


点击确定后,即可将当前的SQL Server模型立马转换成MySQL 5.6。给大家看下对比效果:




转换成功后可以直接将转换后的模型导出成对应的SQL。

点击【工具】——【导出SQL...】,如下图:


选择导出位置,点确定即可,导出的SQL文件里面就是MySQL的建库代码了。


能导出肯定就可以打印,同样如果需要将模型文件保存,也可以导出为PDF,PNG,SVG等格式,但是建议打印成PNG图片格式,因为PDF会分页,导致模型不完整。


打印出来的图片如下:


当然你可随意放大缩小查看详细信息。

以上我们主要介绍了数据库和架构的一些功能,下一期我们再着重介绍数据库对象的一些功能,敬请期待。

觉得不错记得帮忙【点赞】+【转发】,谢谢啦[比心][比心]


相关推荐

Java中List 和 Map、Set 的区别(list和set和map)

hello,大家好,我是霖仔java集合的大家了解,我再给大家说一下他们的区别,希望能够帮助到大家结构特点:List和Set是存储单列数据的集合,Map是存储键和值这样的双列数据的集合;Lis...

Java 集合框架全面解析:选对数据结构,提升开发效率

上一章我们详细介绍了各种常用的数据结构情况(参考:数据结构复杂度全览:如何选择最优结构?),本文结合关键数据结构,从列表(List)、队列(Queue)、集合(Set)、映射(Map)四个维度,深入解...

LinkedList竟然比ArrayList慢了1000多倍?(动图+性能评测)

数组和链表是程序中常用的两种数据结构,也是面试中常考的面试题之一。然而对于很多人来说,只是模糊的记得二者的区别,可能还记得不一定对,并且每次到了面试的时候,都得把这些的概念拿出来背一遍才行,未免有些麻...

LinkedList 底层源码深度解析(linkedlist底层数据结构)

目录1.引言2.LinkedList概述2.1类继承体系图2.2各个接口作用3.与ArrayList的对比4.底层数据结构5.核心方法源码解析5.1add()方法5.2a...

List的用法和实例详解——Java进阶知识讲义系列(四)

序欢迎来到全网最完整的Java进阶知识系列教程!!!每天定时更新!!!本期是Java进阶知识系列的第四讲,将分享Java常用的数据容器——集合类。集合类也分很多类型,比如:List、Set、Map、Q...

Rust高效集合操作(rust基本操作)

集合的分类Rust的集合类型主要分布在标准库的std::collections模块中,同时也包括语言内置的数组和字符串类型序列容器序列容器维护元素的顺序,适合需要按索引访问或顺序遍历的场景向量(...

Java八股文:核心知识点梳理(java八股文是啥)

一、Java基础1.Java基本数据类型8种基本类型:整型:byte(1),short(2),int(4),long(8)浮点型:float(4),double(8)字符型:char(2)布...

面试题:ArrayList和LinkedList有什么区别?

面试题

为什么我不推荐研发人员使用 LinkedList?

在Java集合框架中,LinkedList作为List的实现之一,经常被认为是ArrayList的替代方案。然而,在大多数实际场景下,我们并不推荐使用LinkedList,原因主要集中...

ArrayList 、 LinkedList、Vector的区别

ArrayList、LinkedList、Vector的区别如下:ArrayListLinkedListVector结构动态数组双向链表动态数组是否线程安全否否是效率遍历查找快,插入删除慢插入删除...

(2020 )Java最新面试笔试题答案解析(一)

Java中的集中基本数据类型是什么?各占用多少字节?【数值型】—(整数类型)byte(1字节)short(2字节)int(4字节)long(8字节)拓展:Java中的数据类型除了上面的基本...

超简单五步实现Linux虚拟机CentOS 7系统Root密码忘记重置

环境:CentOS7.5重置root密码:1.CentOS7虚拟机开机,将鼠标光标移动至虚拟机内。2.在虚拟机中使用键盘上↑和↓键将选择行设置为第一行(背景高亮即为选中),按下键盘上的e,进...

吊轨门和推拉门哪个好?北京今朝区别介绍看完不入坑

厨房到底使用什么门好?相信这是大多数业主都比较抓狂的事情,其实在装修中材料的选择最终还是要依据空间而定,那么吊轨门和推拉门哪个好呢?下面就跟随北京装修网一起来看看吧!吊轨门与推拉门介绍吊轨门吊轨门的特...

〖省钱宝典〗不花冤枉钱,少走弯路!居家中推拉门如何设计?

想要空间最大程度的显大?想要充足的光线?又想拥有合理的区域划分?那么推拉门是你绝对不能错过的好选择。推拉门的设计轻盈简洁,绝对是室内每个空间的福音。它不仅可以最大化地节省空间,方便了居室的功能划分和利...

吊趟门与推拉门有什么区别?(吊趟门贵还是推拉门贵)

吊趟门与推拉门的区别很多人在购买的时候并不清楚,有些客人甚至根本分不清吊趟门和推拉门,今天小编就给大家讲讲吊趟门与推拉门的相关内容,看看吊趟门与推拉门的区别有哪些?1、推拉门采用以门扇下滑轮为主支撑点...

取消回复欢迎 发表评论: