JetBrains 发布 DataGrip 1.0——数据库与 SQL 领域中的瑞士军刀

  • 张龙

2015 年 12 月 21 日

话题:JetBrains语言 & 开发架构

近日,来自捷克的软件公司JetBrains发布了全新的重量级产品 DataGrip 1.0——号称数据库与 SQL 领域中的瑞士军刀。DataGrip 的前身 0xDBE 已经发布一年多的时间了,这也是 JetBrains 向广大用户提供的开发版本,每个版本都有一定的使用期限,过期后用户可以从 JetBrains 网站上下载新的开发版本。经过了长时间的开发后,全新的产品 DataGrip 1.0 终于问世。与 JetBrains 产品线上的其他产品类似,DataGrip 也提供了 Windows、Linux 与 Mac 版本。此外,JetBrains 的其他产品如 Intellij IDEA 等也都通过插件的方式集成了 DataGrip,这使得开发者能够更加方便地操作数据库。

此次发布的 DataGrip 支持几乎所有主流的关系数据库产品,如 DB2、Derby、H2、MySQL、Oracle、PostgreSQL、SQL Server、Sqllite 及 Sybase 等,并且提供了简单易用的界面,开发者上手几乎不会遇到任何困难。目前市场上已经存在很多数据库客户端,如 MySQL WorkBench、Toad、NaviCat、phpMyAdmin、Sequel Pro、SQLWave 等等,这些既有的产品中,有些是免费的,有些则是收费的。不仅如此,很多开发者与数据库管理员已经习惯了自己所用的工具,那么 DataGrip 的到来会为大家带来哪些耳目一新的特性呢?

DataGrip 的发布说明中写到:

在过去的一年半时间内,我们为该产品实施了 Early Access Program(EAP),那时产品的名字还叫做 0xDBE。现在是时候推出最终版本了。我们对那些积极反馈意见的热心体验者表示诚挚的感谢,同时也期待大家能对后续的版本建言献计,让我们一起将 DataGrip 打造成一款完美的数据库产品。

DataGrip 的主要特性如下所示:

提供了对主流数据库管理系统的访问

  • 市场上的重量级产品:Oracle、SQL Server、DB2 与 Sybase
  • 社区流行产品:MySQL、PostgreSQL
  • 小众产品:SQLite、Apache Derby、HyperSQL 与 H2

修改数据库对象并自动生成脚本

DataGrip 提供了一个 UI 用以执行诸如创建 / 修改表、管理列、键与索引的操作。可以立即执行生成的代码,也可以在文本编辑器中打开,并直接操作 DDL 脚本。DataGrip 提供了上下文感知的代码完成特性,能够帮助你更快地编写 SQL 代码。代码完成可以感知到表结构、外键,甚至是正在编辑的代码中所创建的数据库对象。DataGrip 可以检测到代码中潜在的 Bug,并即时提供最佳的修复建议。它能够立刻让你知道无法解析的对象,并且总能提供问题的修复建议。

高效编写 SQL 并消除重复的编码工作

借助于 DataGrip,你可以通过代码完成特性更快地编写代码。只需输入数据库对象、标识符或是变量的名字即可,DataGrip 会提供一个匹配的列表。DataGrip 能够感知到完成 JOIN 从句所需的依赖,并提供函数与过程所需的参数类型,还可以给出 INSERT 语句的表结构。DataGrip 提供了 Live Templates 用以生成语句的常见部分,你可以使用默认值,也可以创建新值。

在代码间导航并在输入时进行重命名

DataGrip 能够解析出 SQL 文件中的对象引用。如果对变量或是别名进行了重命名,那么所有用到他们的地方都会相应地进行重命名。如果在 SQL 中重命名了数据库对象,实际的数据库中也会进行重命名。DataGrip 能够正确解析出 SQL 代码中所有的引用,并帮助你对其进行重构。

IDE 会展示出对象(表、列等等)的使用,还会在专门的视图中展示出变量。导航工具可以帮助你在编辑器、模式视图等各种上下文中选择对象。

处理数据并探索关系

你可以通过强大的表编辑器添加、删除、以及克隆数据行。通过过滤文本域可以只查看所需的数据,而无需编写 WHERE 字句。寻找所需数据的另一种方式是使用文本搜索。如果不知道哪一列包含了你所要寻找的数据,那么文本搜索就是一项非常有用的功能了。可以在文本搜索中使用正则表达式。通过外键数据导航可以转到当前行所引用的数据,反之亦然。

分析查询与比较结果

在单击 Execute 按钮时可以选择让 DataGrip 做什么事情——执行子查询、执行外部查询,或是执行整个脚本。只想执行特定的一部分代码?只需将其选中并执行即可。DataGrip 还提供了执行计划,其结果集类似于表编辑器,包含了相同的选项,如添加 / 删除行、文本搜索与数据导航等。可以在 diff 查看器中比较两个结果集。

DataGrip 基于 IntelliJ Platform,带来了:

  • 拥有多种光标与语法感知选择的文本编辑器
  • 版本控制系统集成:Git、Subversion、Mercurial 等等
  • 插件生态圈:Terminal、Textmate 等等

感兴趣的读者可以通过这里了解到关于 CSV 编辑器、图表、参数化查询等的更多信息。

下面是关于 DataGrip 的一些 FAQ,便于让读者了解 DataGrip 的情况:

DataGrip 是通过 JetBrains ToolBox 的形式作为“All Products”包的一部分么?

是的,它既是一个 Single IDE,也是“All Products”的一部分。如果已经有了“All Products”,那么你就可以使用 DataGrip 了。

DataGrip 是不是重复了 JetBrains 的其他 IDE 中数据库工具的功能?

没错,第一个版本主要关注于核心功能。

我可以在 DataGrip 中使用上面没有列出的 SQL 方言么?

可以,JDBC 驱动是唯一之所需。

是否有计划提供存储代码调试、管理工具与 NoSQL 特性?

有的,我们会在未来的版本中增加进这些功能。

我可否向你们提供反馈呢?

当然了!请通过网站的反馈表单、问题追踪器、社区论坛与 Twitter 向我们递交反馈,我们非常欢迎。

DataGrip 一经发布,立刻在国外各大论坛与讨论组中引起了人们的广泛兴趣。很多人都对其赞不绝口。值得一提的是,就在前不久,JetBrains 更新了旗下的所有产品,如 PyCharm、RubyMine、AppCode、WebStorm 等,并且使用了新的 Logo,网站也进行了改版。

尽管现在已经有相当数量的免费数据库客户端,但 JetBrains 依然对自己提供的收费产品 DataGrip 充满了信心。感兴趣的读者可以试用DataGrip,它提供了 30 天的免费试用期。相信会给你带来不一样的感觉。

JetBrains语言 & 开发架构