概述
首先吐槽一下,不能将很久之前写的富文本编辑器编辑的文章转换成Markdown格式。但是对于DataGrip的使用技巧,一直在积累;富文本真的太烂,没办法,只能另写一篇。之前写的DataGrip使用经验之谈。
另外,强烈建议阅读前,先看一下Java开发IDE神器IntelliJ IDEA 教程,因DataGrip和快捷键和使用习惯和IDEA如出一辙,极度相似。
实战
DataGrip连接SQL Server
连接SQL Server失败,默认使用的驱动是sqljdbc4:
结果报错信息如下:
[08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。
javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12].
结果使用Microsoft SQL Server(jTds)之后,报错信息如下:
[08S01] Network error IOException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12].
新建文件custom.java.security
,内容如下:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
选中数据库,右键属性,点击高级,在VM options里面增加如下内容:
-Djava.security.properties=C:\Users\<awesome_me>\Downloads\custom.java.security
然后重新点击Test Connection,如果不行,请清除DataGrip缓存重启:Invalidate Caches,然后Invalidate And Restart。
事实上,这个报错,对于其他数据源也是适用的。
快捷键
参考IDEA的快捷键,下面列出一些功能不太一样的快捷键:
- Shift + F6:表字段重命名
- Ctrl + F6:选中表,编辑表结构,可修改字段名,类型,是否可空,添加索引,调整字段顺序……等,所有更改,会同步展示在下面的SQL Script中
- Ctrl + Alt + G:选中表,生成建表DDL语句
- Ctrl + Q:行转列
界面
这里列出一些各界面按钮点点点操作:
- 右上角有个More Schema选项,点击可以切换不同的schema:
- 另外,还有一个More Session选项,点击可以切换不同的Session:
- 设置事务模式及等级:
设置
- 在console控制台写完SQL语句后,选中,点击左上侧绿色箭头执行,或快捷键Ctrl+Enter;选中情况下,会直接执行该SQL,未选中时,如果console中有多条SQL,会提示你要执行哪条SQL。可考虑设置默认执行光标所在的SQL语句:
setting ->
Database ->
General中,将Ask what to execute换成Smallest statement
技巧
- 有时要把某个字段置为NULL,而不是空字符串"",在列上右键,选择Set NULL;该列(字段)的定义必须为允许
null
,如果该字段定义为not null
,not null
的列可以指定默认值如5
, 此时右键为set default
; - 行转列:对于字段比较多的表,查看数据要左右推动,可以切换成列显示,在结果集视图区域使用
Ctrl + Q
快捷键。一般是将当前选中行弹窗展示成列;选中多行时,还是需要左右滑动看多行数据; -
select *
查询所有列是不好的习惯,Alt+Enter快捷键,选择Expand column list,能快速展开列; - 表之间会有外键关联,查询时,能直接定位到关联数据,或被关联数据,go to-referencing data,然后选择要显示第一条数据还是显示所有数据;
- 对于查询使用表别名的,而字段中没有使用别名前缀的,DataGrip能自动添加前缀,鼠标停留在需要添加别名前缀的字段上,使用Alt+Enter,选择Qualify identifier;
导入导出
选择需要导出数据的表,右键,Dump Data To File
即可以导出insert、update形式的SQL语句,也能导出为html、csv、json格式的数据,如果是导出到csv格式,还能控制导出的格式
也可以在查询结果视图中导出。
注意,导出时如果勾选左侧的两个header选项,导入时如果有header,也要勾选,不然会提示列个数不匹配。
问题Error encountered when performing Introspect database master: 不支持“variant”数据类型。
在使用Intellij IDEA或者DataGrip连接SQL Server数据源报错。
解决方案:勾选Introspect using JDBC metadata