这里给小伙伴们罗列几个我在使用DataGrip中一些不足的地方:
- 用户体验并不十分友好,你需要花费一些时间去学习如何使用它
- 和相似的工具比较,它运行并不迅速,当处理大容量数据库的时候会比较缓慢,将耗费GB等级的内存
- 完全加载本地数据库数据,如果你的数据库数据较多,可能等它加载完成,你差不多要吃午饭了
- 导入导出功能有待完善
最后还是滚去用Navicat了
Navicat的功能非常多,这里为了让小伙伴们一一掌握,分为多个篇章具体讲述。
安装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会分页,导致模型不完整。
打印出来的图片如下:
当然你可随意放大缩小查看详细信息。