之前给小伙伴们推荐一款数据库开发工具DataGrip
最近使用了DataGrip一段时间,发现它并不适合我,因为我平时不仅仅要写代码,也要负责数据仓库的建设和数据库管理的一些工作。
这里给小伙伴们罗列几个我在使用DataGrip中一些不足的地方:
- 用户体验并不十分友好,你需要花费一些时间去学习如何使用它
- 和相似的工具比较,它运行并不迅速,当处理大容量数据库的时候会比较缓慢,将耗费GB等级的内存
- 完全加载本地数据库数据,如果你的数据库数据较多,可能等它加载完成,你差不多要吃午饭了
- 导入导出功能有待完善
最后还是滚去用Navicat了
Navicat的功能非常多,这里为了让小伙伴们一一掌握,分为多个篇章具体讲述。
目录
- 安装Navicat
- 连接不同数据库
- 创建数据库
- 数据传输
- 导出表结构
- 生成数据字典
- 查找数据或表名
- 生成E-R模型
注:以上功能无需书写任何SQL代码
安装Navicat
因为工作原因,需要经常连接不同的数据库,这里我安装的是Navicat Premium版。
安装过程很简单,只要你能看懂中文,不停的下一步,等待安装完成即可。
![62600178d650d6a94445071a1b1b98dc.png](https://i-blog.csdnimg.cn/blog_migrate/fb0ff7bf20cc2dba03cedee133947e34.jpeg)
连接不同数据库
这里分别介绍Oracle,MySQL,SQL Server这三种数据库的连接方法
连接Oracle
在连接Oracle之前我们需要先配置一下OCI文件,具体如下:
点开主菜单里的【工具】——【选项...】,在弹出的对话框中找的OCI选项
![9fc8f2d8afd171a4985d6d827545c91d.png](https://i-blog.csdnimg.cn/blog_migrate/34977a9c34767cd54bc68b7f8f252a20.jpeg)
这里就要把你安装的oracle的安装目录下的bin文件夹里面的oci.dll文件导入
E:softwareoracleOracle_win64product11.2.0dbhome_1BINoci.dll
以上是我的安装目录下的文件,大家根据自己的安装目录不同来导进来
导进来之后就重启Navicat,重启后会自动生效。
重启Navicat后,点击菜单栏的连接,选择Oracle,如下图:
![08fffe46b4a0272972b6da3a6c72b589.png](https://i-blog.csdnimg.cn/blog_migrate/150c3c36cb5dc75f1de86dc50874d0e3.jpeg)
在弹出的对话框中做如下配置,其中连接名可以随意起,然后输入你要连接的主机名或IP地址,最后输入账号密码。
![38d4cf2b61d69af46b0322a3f70c1ea6.png](https://i-blog.csdnimg.cn/blog_migrate/4b2137076daa57d5aab19ea1dd215eea.jpeg)
如果你是使用DBA角色登录的,还需要点开高级选项卡,将角色选为DBA
![427abdbe1765aca48dcb73d38a19ebb7.png](https://i-blog.csdnimg.cn/blog_migrate/e4524f115814ab024120c0dd096bd16f.jpeg)
配置完了以后,我们可以点击连接测试
![208377addbd669f0f545a7b0f906eeb4.png](https://i-blog.csdnimg.cn/blog_migrate/ea4d60ed083388b01abd12b81c43a586.jpeg)
这样Oracle的连接就配置好了。
连接MySQL和SQL Server
MySQL和SQL Server的连接相对比较简单,只需要输入主机名或IP地址,账号密码即可,具体如下图:
![3086fbb0d38ad463168308c2b3e79270.png](https://i-blog.csdnimg.cn/blog_migrate/ca76361b8a0184f9f45feed33822604f.jpeg)
![ae43e2880737090873e5a68c34ca527a.png](https://i-blog.csdnimg.cn/blog_migrate/d33a60e84f04d2ec4423e739d50e7a6a.jpeg)
配置好后,点击连接测试,在弹出连接成功窗口就表示我们配置好了。
数据库连接成功后,下面是各个功能的介绍,我们以SQL Server数据库作为案例来介绍各个功能的使用。
创建数据库
右键我们刚新建的数据库连接——选择【新建数据库...】即可开始创建数据库了。
![e3e0b978c2b969062a0bb11f4b5ea705.png](https://i-blog.csdnimg.cn/blog_migrate/a5f388e600b00f12f3b28571fc9374b6.jpeg)
可以根据你的要求来进行配置,配置完以后,还可以在【SQL预览】看到完整的SQL代码:
![ea4f26e62e407a2f9c585ca8603f7fae.png](https://i-blog.csdnimg.cn/blog_migrate/c0a1562d3e415ed039ccad645cf37e75.jpeg)
数据传输
数据传输,顾名思义就是将数据从其他地方传输到当前数据库,例如我们将SQL_Road数据库中的数据传输到刚才新建的Test数据库中。
![7ca560d98ba0fa81f51d85409fcef650.png](https://i-blog.csdnimg.cn/blog_migrate/92d15fa707a0e7c0def4c272520f9fb2.jpeg)
右键刚才创建好的Test数据库,在弹出的选项中选择【数据传输...】,在弹出的窗口中我们配置源数据库为【SQL_Road】,目标数据库配置为【Test】,这样就可以将SQL_Road中的对象传输到Test了,支持传输的对象包括:表,视图,函数和存储过程,具体如下图:
![b767292c75550734ae906485e1d5892e.png](https://i-blog.csdnimg.cn/blog_migrate/022015fa4e88193f81981193b7aaa618.jpeg)
点击开始即可开始进行数据传输,传输效率还是很快的,即使你的数据量很大,也可以使用该方法进行数据传输,这里使用了不到2秒钟就将整个数据库对象迁移到新的数据库中了。
![baaaeab87e692826541b64ef7f6ad17d.png](https://i-blog.csdnimg.cn/blog_migrate/420d5b9550e8c4d4b71b1426aceaf9ad.jpeg)
此外如果你想导出整个数据库中的对象到文件,也可以使用该方法,只需要将方式改为文件即可,如下图:
![dd6ac87b81d0af412ce4977063f2d08e.png](https://i-blog.csdnimg.cn/blog_migrate/8a2ed0f26b7234b16899caa4b393e3a7.jpeg)
如果你想自定义导出的内容,可以点击该窗口的【高级】选项进行自定义配置,如下图:
![b3fb4c7ba1db04feb5a87fd30fad9c64.png](https://i-blog.csdnimg.cn/blog_migrate/802e5996f6d9f9e0d5796ad8b7d9fc0c.jpeg)
配置完成后,点击开始,就会将你选择的数据库对象以脚本的形式导出到文件中。
但是数据传输到文件有个不足的地方,就是会将数据记录也会一并导出,而很多时候,我们其实只需要表结构,那么我们可以使用下面的这个功能。
转储SQL文件
双击打开数据库后,我们右键架构名dbo,在弹出的选项中选择【转储SQL文件...】,这里还有两个子选项:【结构和数据...】和【仅结构...】,如下图:
![cf2caf1fe07efc36ab773ae9dd66aa8c.png](https://i-blog.csdnimg.cn/blog_migrate/0cb62bfbdda6f0ea68d244c9696c57a2.jpeg)
他们的区别就是一个有数据记录,一个没有数据记录,如果你只要数据结构可以只选择【仅结构...】,这样就可以大大节省导出时间了。
打印模式
做数据库仓库往往面对的不是几张表,往往是成百上千张数据表,该怎么维护对DBA是个非常头疼的事,如果有个数据表结构或数据字典之类的就非常完美了。
打印模式可以完美的生成所有表的数据表结构的。这里我们选择表数量较多的数据库ReportServer。右键dbo后,选择【打印模式...】,如下图:
![289b10cc7fbde70299260677f4c44dbc.png](https://i-blog.csdnimg.cn/blog_migrate/eb279f544e85cd3467a69e4ae0197cf9.jpeg)
可以看到右侧窗口里面出现了所有数据表的表结构,如下图:
![4ada4cc8d2a048a8fe55368801f55b2b.png](https://i-blog.csdnimg.cn/blog_migrate/1867e89f6587b0c82bb1daad8f2ab385.jpeg)
足足有10页之多,我们点击左上方的【打印】,将表结构打印成PDF文件,就可以得到一份非常完成的数据字典了,如下图:
![1fbca2ca2f6fb07edf42fc5437d0b060.png](https://i-blog.csdnimg.cn/blog_migrate/843b4e9bfd4c1c7f784ae6e464d122ec.jpeg)
内容中主键和索引也有仔细的标注出来,其中P代表主键,下面的index表示索引。
这个功能绝对是一个神器!
在模式中查找
这个功能主要用来查找数据或结果,当你需要从当前数据库中查找数据记录或对象中包含某些字符时,可以使用该功能,具体如下:
![cdce1bf11f0c3078656b3bac63328a1f.png](https://i-blog.csdnimg.cn/blog_migrate/ca08820ae9fa68da2d0f8b33e3c2101e.jpeg)
在弹出的对话框中,我们查找pre的结构,就可以将当前数据库符合要求的的所有对象都查找出来,如下图:
![26f5070b0e8e3b573d8baae812e77b96.png](https://i-blog.csdnimg.cn/blog_migrate/3a6aef5cf0067896d13863f6368a167f.jpeg)
逆向模式到模型
这又是一个神仙技能,谁用谁知道,右键dbo在弹出的选项中选择【逆向模式到模型..】,如下图:
![671fa4d193078f7f2a1ccb5727a55165.png](https://i-blog.csdnimg.cn/blog_migrate/4cf547b48f987655ac7346dcc1b1db7b.jpeg)
它可以将当前数据库中创建的所有表,以E-R图的模型清楚的告诉你每个表之间的关联关系,包括主外键,表结构,关联关系等,如下图:
![97fd509be4bb9236bd5daed3187a9605.png](https://i-blog.csdnimg.cn/blog_migrate/c4d563c35a84838d3192072099e8b787.jpeg)
你以为就这?
还支持模型转换,模型导出,说白了就是你可以将该模型转换成其他数据库的模型,从SQL Server转换成MySQL,Oracle,Postgresql都可以。点击左上角的三短横,选择【文件】——【模型转换】,如下图:
![4b2d1804b0c596f16cdfea594e4d6843.png](https://i-blog.csdnimg.cn/blog_migrate/89bf77700ab994aae2748151e23741a1.jpeg)
在弹出的对话框中选择你要转换的类型,比如我们想转换成MySQL 5.6的,如下图:
![269f31e6bd1f41a59f6fe59d98d89231.png](https://i-blog.csdnimg.cn/blog_migrate/d427ea6549d44146e129ec0caf3b21db.jpeg)
点击确定后,即可将当前的SQL Server模型立马转换成MySQL 5.6。给大家看下对比效果:
![aaa10ec7c450e1b4fa97fca21e170f22.png](https://i-blog.csdnimg.cn/blog_migrate/24c7bb7dcb9cedc5da3ab82ba7abc4c1.jpeg)
SQL Server模型
![717bd62d60aea65b6e4089ba4cfa56ca.png](https://i-blog.csdnimg.cn/blog_migrate/d85d9b7836ba452f529474551709a0c0.jpeg)
MySQL模型
转换成功后可以直接将转换后的模型导出成对应的SQL。
点击【工具】——【导出SQL...】,如下图:
![4bcfc42910391434e7df589de225563f.png](https://i-blog.csdnimg.cn/blog_migrate/99b153fc321bf8abeca407069b783c9e.jpeg)
选择导出位置,点确定即可,导出的SQL文件里面就是MySQL的建库代码了。
![a8d0a1b1db844085fc58048e28ce3609.png](https://i-blog.csdnimg.cn/blog_migrate/13e7246a58beba494f9eddd102728460.jpeg)
能导出肯定就可以打印,同样如果需要将模型文件保存,也可以导出为PDF,PNG,SVG等格式,但是建议打印成PNG图片格式,因为PDF会分页,导致模型不完整。
![5905107153238cc71c2ef1132a69d83d.png](https://i-blog.csdnimg.cn/blog_migrate/d091baae7ccc99ff81844fadad097a22.jpeg)
打印出来的图片如下:
![5e1f84fc719e6eb171ca0cc65e95dd8c.png](https://i-blog.csdnimg.cn/blog_migrate/2d41f2a1c60dce58cbe023b6a075ad2e.jpeg)
当然你可随意放大缩小查看详细信息。
以上我们主要介绍了数据库和架构的一些功能,下一期我们再着重介绍数据库对象的一些功能,敬请期待。
觉得不错记得帮忙【点赞】+【转发】,谢谢啦[比心][比心]