之前给小伙伴们推荐一款数据库开发工具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 Server模型
MySQL模型
转换成功后可以直接将转换后的模型导出成对应的SQL。
点击【工具】——【导出SQL...】,如下图:
选择导出位置,点确定即可,导出的SQL文件里面就是MySQL的建库代码了。
能导出肯定就可以打印,同样如果需要将模型文件保存,也可以导出为PDF,PNG,SVG等格式,但是建议打印成PNG图片格式,因为PDF会分页,导致模型不完整。
打印出来的图片如下:
当然你可随意放大缩小查看详细信息。
以上我们主要介绍了数据库和架构的一些功能,下一期我们再着重介绍数据库对象的一些功能,敬请期待。
觉得不错记得帮忙【点赞】+【转发】,谢谢啦