目录

DataGrip 怎么用?16 个 MySQL 数据库操作技巧一次讲清

DataGrip 是 JetBrains 出的数据库 IDE,操作逻辑和 IntelliJ IDEA 几乎一脉相承。

它不只支持 MySQL,PostgreSQL、Oracle、SQL Server、ClickHouse、Redis、SQLite 这些也都能连。

下面这 16 个操作,都是日常开发里用得最多的。

每一条都配了图,照着点就行。

一、数据源分组

数据源一多,列表就乱。

DataGrip 支持把连接归到不同的组(其实就是文件夹),按数据库类型或者环境分门别类。

测试、预发、正式各放一组,找起来快,也能少一点误操作的风险。

右键数据源面板,选 NewGroup,再把连接拖进去就行。

/img/datagrip-describe/0101.png
DataGrip数据源分组管理界面,按环境创建文件夹归类连接

二、给数据源设置颜色

分组之外还有一招:给数据源加颜色标识。

正式环境标个扎眼的红色,测试环境标绿色。

打开 SQL 控制台的时候,编辑器边框会染成对应的颜色,一眼就知道当前连的是哪个库。

右键数据源 → Color Settings(或在数据源属性里设置)即可。

/img/datagrip-describe/0201.png
DataGrip给正式环境数据源设置红色标识的配置界面

三、表显示不全?打开过滤开关

连上库,结果发现表少了一半,这是新手最容易懵的地方。

原因是 DataGrip 默认只加载部分 schema,需要手动勾选要展示的库。

双击数据源,在 Schemas 标签页里把目标 schema 勾上就行。

/img/datagrip-describe/0301.png
DataGrip数据源Schemas标签页勾选要显示的数据库

/img/datagrip-describe/0302.png
DataGrip勾选schema后表全部正常展示的效果

四、搜索表

表多到几百上千张,靠眼睛翻不现实。

在数据源树上直接敲表名,就能即时过滤定位。

/img/datagrip-describe/0401.png
DataGrip在数据源树中输入关键字快速过滤表

五、常用快捷键(Mac)

跟 IDEA 系基本通用,记几个高频的就够用:

  • 执行 SQL:⌘ + ↩(Cmd + Enter)
  • 格式化代码:⌘ + ⌥ + L(Cmd + Option + L)
  • 全局搜索:双击 Shift
  • 跳转到定义:⌘ + B
  • 重命名重构:⇧ + F6(Shift + F6)
  • 注释当前行:⌘ + /

需要说明一下,网上有教程把格式化写成 Ctrl + L,那是不对的。

Mac 下格式化是 ⌘ + ⌥ + L,Windows 下是 Ctrl + Alt + L

六、查看 SQL 执行计划

执行计划就是 EXPLAIN,用来看 SQL 走没走索引、扫了多少行。

平时要看执行计划,得在语句前加 EXPLAIN,看完再删掉,来回折腾挺烦。

DataGrip 里直接在 SQL 上右键 → Explain Plan,等价于自动跑了一遍 EXPLAIN,原语句一个字都不用动。

/img/datagrip-describe/0601.png
DataGrip右键菜单中的ExplainPlan执行计划入口

七、设置数据库只读状态

这个功能对手抖星人是真救命。

连正式库改数据,最怕的就是把测试库的操作敲到了正式会话上。

办法是给正式环境建两个数据源:一个只读、一个可写。

平时只用只读那个,确实要改数据时再切到可写的去。

在数据源属性的 Options 里勾上 Read-only,写操作会被直接拦下来。

/img/datagrip-describe/0701.png
DataGrip数据源属性中勾选Read-only只读模式

八、批量修改 SQL 表别名

复杂查询里改表别名,手动一个个找着改容易漏。

把光标放在别名上,按 ⇧ + F6 重命名,所有引用的地方会同步改掉。

比全局替换稳,不会误伤同名字符串。

/img/datagrip-describe/0801.png
DataGrip使用Shift+F6重命名SQL表别名

九、SQL 语句前的注释,是有用的

很多人以为注释就是给人看的,在 DataGrip 里它还有个隐藏用途。

执行带注释的 SQL 时,注释内容会变成结果集标签页的标题。

一次跑好几条查询,控制台里靠这个标题切换结果,比 result 1result 2 清楚太多了。

/img/datagrip-describe/0901.png
DataGrip中SQL注释自动变成结果集标签标题

十、对比多个结果集

选中两个查询结果,右键 Compare,DataGrip 会把差异行标出来。

核对两个环境的数据是否一致时很好用。

/img/datagrip-describe/1001.png
DataGrip对两个查询结果集做差异比较

十一、查看 SQL 执行耗时

每条语句跑了多久,控制台底部和日志里都会记录。

调优的时候,改一版看一眼耗时,对比很直观。

/img/datagrip-describe/1101.png
DataGrip控制台显示SQL语句的执行耗时

十二、快速跳转到操作的表

光标停在 SQL 里的表名上,按 ⌘ + B,直接跳到该表在数据源树中的位置。

语句长、表多的时候省事不少。

/img/datagrip-describe/1201.png
DataGrip通过Cmd+B从SQL跳转到对应的表

十三、快速查看表结构

按住 (Windows 下 Ctrl)点击表名,就能弹出这张表的 DDL 建表语句。

字段、索引、引擎一目了然,不用专门打开表结构面板。

/img/datagrip-describe/1301.png
DataGrip按住Cmd点击表名查看DDL建表语句

十四、数据导出与导入

DataGrip 导数据有几条路子,按场景挑:

  • mysqldump:适合整库迁移,前提是本机装了 MySQL 客户端。

  • Copy Table to:把表整张复制到另一个数据源,跨库搬表常用。

  • 复制查询结果到新表:把一段查询的结果直接落成一张新表。

/img/datagrip-describe/1401.png
DataGrip数据导出方式选择界面

/img/datagrip-describe/1402.png
DataGrip数据导出格式与目标配置

/img/datagrip-describe/1403.png
DataGrip数据导入到目标表的映射设置

十五、修改表结构

右键表 → Modify Table,在可视化界面里改字段、加索引、调引擎。

改完会生成对应的 ALTER 语句,确认后再执行。

不熟 DDL 语法的时候,这个面板挺顶用。

/img/datagrip-describe/1501.png
DataGrip可视化修改表结构的ModifyTable界面

十六、全局搜索

双击 Shift 调出 Search Everywhere

表名、字段、SQL 文件、菜单功能,全都能搜,找不到东西的时候先试它。

常见问题 FAQ

Q1. DataGrip 只能连 MySQL 吗?

不是。

它是通用数据库 IDE,PostgreSQL、Oracle、SQL Server、ClickHouse、Redis、SQLite、MongoDB 等主流数据库都支持,靠 JDBC 驱动连接。

Q2. 连上数据库后为什么看不到表?

大概率是 schema 没勾全。

双击数据源进 Schemas 标签页,把要用的数据库勾上,表就出来了,参考第三节。

Q3. 怎么防止在正式库误操作?

给正式数据源开启 Read-only 只读模式。

需要写数据时,单独建一个可写数据源切过去,平时只用只读的,参考第七节。

Q4. DataGrip 是收费的吗?

DataGrip 本身是付费软件,提供 30 天试用。

如果只是偶尔用,IntelliJ IDEA Ultimate 内置了数据库工具,功能基本一致,不用单独装。

Q5. SQL 格式化快捷键是什么?

Mac 是 ⌘ + ⌥ + L,Windows 是 Ctrl + Alt + L

网上常见的 Ctrl + L 是错的,那是另一个功能。

写在最后

DataGrip 的核心价值不在花哨功能,而在于把这些高频操作的成本压到最低。

只读保护、注释当标题、右键执行计划这几个,用顺手了能实打实少踩坑、少加班。

如果你对某个操作还有疑问,或者发现了更好用的技巧,欢迎在评论区交流~~~

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/datagrip-describe/

备用原文链接: https://blog.fiveyoboy.com/articles/datagrip-describe/