1 基本使用
1.1 菜单介绍
这是右键单击表出现的菜单
3.修改表结构:(可以修改列和主键什么的)
4复制 数据库名.表名: ctrl+v就能粘贴
5.跳到编辑器: 可以在这里修改表数据,查看表数据
6.查找引用:可以查看到你的表在哪里使用过
7.表工具: 可以删除主键什么的(感觉没什么用)
8.SQL脚本
![[DataGrip]笔记 - 图1](/uploads/projects/zjj1994@gongju/a14d30e2773f191864bb8b8e62870d18.png)
1.2 其他使用
1.2.1 导出MySQL的sql脚本
![[DataGrip]笔记 - 图2](/uploads/projects/zjj1994@gongju/f742d0be9e91e7e5ae1e03132e2cb7ca.png)
Path to mysqlIdump: 是你MySQL服务的exe文件夹![[DataGrip]笔记 - 图3](/uploads/projects/zjj1994@gongju/ca708234d4843ebc9dc50013fd787acc.png)
选项说明
Multiple rows inserts
第一个是变成最短的insert语句 比如:INSERT INTO teacher VALUES (1,’张三’,’女’),(2,’张四’,’男’),(3,’李四’,’男’),(4,’王五’,’女’);
MySQL create table options
MySQL创建表选项 ![[DataGrip]笔记 - 图4](/uploads/projects/zjj1994@gongju/c6564ff69e0ba9649248c82f92796da6.png)
Add drop table
添加删除表
lock tables
锁定表
disable keys
addlocks
delayed inserts
add drop trigger
1.2.2 无法导出Oracle的sql表结构脚本
需要用别的软件
2 基本设置
2.1 连接Oracle数据库
打开DataGrip,File->new ->project![[DataGrip]笔记 - 图5](/uploads/projects/zjj1994@gongju/65c4b6b54f1353c1fd82374d5d41e3f1.png)
给项目取名![[DataGrip]笔记 - 图6](/uploads/projects/zjj1994@gongju/10aed667fa5e46d8414cb5a687c83af4.png)
![[DataGrip]笔记 - 图7](/uploads/projects/zjj1994@gongju/591a5dda9e3d9f3fe70a8a8cfa1c1246.png)
![[DataGrip]笔记 - 图8](/uploads/projects/zjj1994@gongju/84b07b3be0e947f847dda5614d50dc1e.png)
点击测试能不能连接Oracle数据库![[DataGrip]笔记 - 图9](/uploads/projects/zjj1994@gongju/423a4041d0987a4f8bd2eae4106cf337.png)
2.2 添加数据库连接
![[DataGrip]笔记 - 图10](/uploads/projects/zjj1994@gongju/e2e9c03a0a7b44ef20c1d51cb685effd.png)
![[DataGrip]笔记 - 图11](/uploads/projects/zjj1994@gongju/b6de3f3b516c84cef5bb42f7ed810071.png)
![[DataGrip]笔记 - 图12](/uploads/projects/zjj1994@gongju/aef4192b8f32155caa5abdf0d0dfebd6.png)
![[DataGrip]笔记 - 图13](/uploads/projects/zjj1994@gongju/0f64ce36142b5554a74c87b5ac83c8bd.png)
![[DataGrip]笔记 - 图14](/uploads/projects/zjj1994@gongju/cd908dc7d2f13c31190b8955b602619b.png)
2.3 字体设置
![[DataGrip]笔记 - 图15](/uploads/projects/zjj1994@gongju/f06b491b38c74b1c1526f28b8b093e64.png)
2.4 sql关键字设置大写
![[DataGrip]笔记 - 图16](/uploads/projects/zjj1994@gongju/dda25449aac1b7a061f9a0ceb1fd85f6.png)
2.5 设置null值
有的时候我们要把某个字段置为 null,不是空字符串””,DataGrip 也提供了渐变的操作,直接在列上右键,选择 set null![[DataGrip]笔记 - 图17](/uploads/projects/zjj1994@gongju/80af2cd1db8e1d9ea1d8baca07e8398d.png)
3 数据导出
这些基本功能的设计、体验,已经惊艳到我了,接下来就是数据的导出。
DataGrip 的导出功能也是相当强大
选择需要导出数据的表,右键,Dump Data To File![[DataGrip]笔记 - 图18](/uploads/projects/zjj1994@gongju/27bedbb7a2560e50a8eebb400861df20.png)
即可以导出 insert、update 形式的 sql 语句,也能导出为 html、csv、json 格式的数据
也可以在查询结果视图中导出
![[DataGrip]笔记 - 图19](/uploads/projects/zjj1994@gongju/7e957fffb732fc3c6d062ad9f5a0eedc.png)
点击右上角下载图标,在弹出窗口中可以选择不同的导出方式,如 sql insert、sql update、csv 格式等![[DataGrip]笔记 - 图20](/uploads/projects/zjj1994@gongju/4b941d33dea34ca86125d6af4e048c15.png)
如果是导出到 csv 格式,还能控制导出的格式![[DataGrip]笔记 - 图21](/uploads/projects/zjj1994@gongju/fcde6e23f336ebf609160a7a42ac0b01.png)
导出后用 excel 打开是这种结果![[DataGrip]笔记 - 图22](/uploads/projects/zjj1994@gongju/773064725a2c8388f8ce08c92dbfc4ca.png)
4 数据导入
选择表,右键->Import from File,选择要导入的文件![[DataGrip]笔记 - 图23](/uploads/projects/zjj1994@gongju/b2ebc9bdb037c7c1e5a3a76082a9e747.png)
注意,导出的时候如果勾选了左侧的两个 header 选项,导入的时候如果有 header,也要勾选,不然会提示列个数不匹配
5 搜索软件
5.1 导航+全局搜索
关键字导航
当在 datagrip 的文本编辑区域编写 sql 时,按住键盘 Ctrl 键不放,同时鼠标移动到 sql 关键字上,比如表名、字段名称、或者是函数名上,鼠标会变成手型,关键字会变蓝,并加了下划线,点击,会自动定位到左侧对象树,并选中点击的对象![[DataGrip]笔记 - 图24](/uploads/projects/zjj1994@gongju/84fa325f6b1ad487e117d1cf0cbbd093.png)
5.2 快速导航到指定的表、视图、函数等
在 datagrip 中,使用 Ctrl+N 快捷键,弹出一个搜索框,输入需要导航的名称,回车即可
![[DataGrip]笔记 - 图25](/uploads/projects/zjj1994@gongju/5d3f22f80e9c7f10e4a01990993f0f0c.png)
5.3 全局搜索
连续两次按下 shift 键,或者鼠标点击右上角的搜索图标,弹出搜索框,搜索任何你想搜索的东西
![[DataGrip]笔记 - 图26](/uploads/projects/zjj1994@gongju/2d152d81d841ac514c78014a7e05f1cb.png)
5.4 结果集搜索
在查询结果集视图区域点击鼠标,按下 Ctrl+F 快捷键,弹出搜索框,输入搜索内容,支持正则表达式、过滤结果
5.5 导航到关联数据
表之间会有外检关联,查询的时候,能直接定位到关联数据,或者被关联数据,例如 user1 表有个外检字段 classroom 指向 classroom 表的主键 id,在查询 classroom 表数据的时候,可以在 id 字段上右键,go to,referencing data![[DataGrip]笔记 - 图28](/uploads/projects/zjj1994@gongju/546a2f46ab061e29082f6f07ea24a292.png)
选择要显示第一条数据还是显示所有数据![[DataGrip]笔记 - 图29](/uploads/projects/zjj1994@gongju/0b61191c7fd095f87978172915441b44.png)
会自动打开关联表的数据![[DataGrip]笔记 - 图30](/uploads/projects/zjj1994@gongju/a7a88736a5b2a9fa3d8e8ba768dc9f87.png)
相反,查询字表的数据时,也能自动定位到父表
6 数据转换
6.1 结果集数据过滤
对于使用 table edit(对象树中选中表,右键->table editor)打开的结果集,可以使用条件继续过滤结果集,如下图所示,可以在结果集左上角输入款中输入 where 条件过滤
![[DataGrip]笔记 - 图31](/uploads/projects/zjj1994@gongju/52a8bc6ae0b2f7a37b3f193657d4a8da.png)
也可以对着需要过滤数据的列右键,filter by 过滤![[DataGrip]笔记 - 图32](/uploads/projects/zjj1994@gongju/4f47a787acc9a06170f31ea8afee09a6.png)
6.2 行转列
对于字段比较多的表,查看数据要左右推动,可以切换成列显示,在结果集视图区域使用 Ctrl+Q 快捷键![[DataGrip]笔记 - 图33](/uploads/projects/zjj1994@gongju/20a42e8a1b8d2d956875dfa7946049f9.png)
6.3 变量重命名
鼠标点击需要重命名的变量,按下 Shift+F6 快捷键,弹出重命名对话框,输入新的名称
6.4 自动检测无法解析的对象
如果表名、字段名不存在,datagrip 会自动提示,此时对着有问题的表名或字段名,按下 Alt+Enter,会自动提示是否创建表或添加字段![[DataGrip]笔记 - 图35](/uploads/projects/zjj1994@gongju/50d4a0d92382efb2661bcc21f3067219.png)
6.5 权限定字段名
对于查询使用表别名的,而字段中没有使用别名前缀的,datagrip 能自动添加前缀,鼠标停留在需要添加别名前缀的字段上,使用 Alt+Enter 快捷键![[DataGrip]笔记 - 图36](/uploads/projects/zjj1994@gongju/8d5023f33826a66f33b6f4d6849b5c6e.png)
7 格式化
7.1 通配符自动展开
查询的时候我们会使用 select 查询所有列,这是不好的习惯,datagrip 能快速展开列,光标定位到后面,按下 Alt+Enter 快捷键![[DataGrip]笔记 - 图37](/uploads/projects/zjj1994@gongju/50ae9af1f3987ee820f19f9f3c8ad437.png)
7.2 大写自动转换
sql 使用大写形式是个好的习惯,如果使用了小写,可以将光标停留在需要转换的字段或表名上,使用 Ctrl+shift+U 快捷键自动转换
7.3 sql 格式化
选中需要格式化的 sql 代码,使用 Ctrl+Alt+L 快捷键
datagrip 提供了一个功能强大的编辑器,实现了 notpad++的列编辑模式
# 列编辑
7.4 多光标模式
在编辑 sql 的时候,可能需要同时输入或同时删除一些字符,按下 alt+shift,同时鼠标在不同的位置点击,会出现多个光标![[DataGrip]笔记 - 图38](/uploads/projects/zjj1994@gongju/1529ef3454ecdefc0f874ece9f10f745.png)
7.5 代码注释
选中要注释的代码,按下 Ctrl+/或 Ctrl+shift+/快捷键,能注释代码,或取消注释![[DataGrip]笔记 - 图39](/uploads/projects/zjj1994@gongju/017fbd10be7418829ce5c4fa7baf2e04.png)
7.6 列编辑
按住键盘 Alt 键,同时按下鼠标左键拖动,能选择多列,拷贝黏贴等操作![[DataGrip]笔记 - 图40](/uploads/projects/zjj1994@gongju/2baef333fee1e7af140a1244768eb9a1.png)
7.7 代码历史
在文本编辑器中,邮件,local history,show history,可以查看使用过的 sql 历史
7.8 命令历史
![[DataGrip]笔记 - 图42](/uploads/projects/zjj1994@gongju/16b0c7a4d91f4d62da1160d8c51f8c38.png)
