日常开发中少不了各种可视化数据库管理工具。如果需要同时能连接多种数据库,大家肯定都会想到 DBeaver、Navicat Premium。本文介绍另一个十分好用且强大的工具:DataGrip。
DataGrip 是 JetBrains 公司推出的管理数据库的产品。对于 JetBrains 公司,开发者肯定都不陌生,IDEA 和 ReSharper 都是这个公司的产品,用户体验非常不错。
DataGrip 提供 Windows 版本和 macOS 版本,支持几乎所有主流的关系数据库产品,如:PostgreSQL、MySQL、Oracle Database、SQL Server、Azure、Amazon Redshift、SQLite、DB2、H2、Sybase、Exasol、Apache Derby、MariaDB、HyperSQL、ClickHouse、Cassandra、Vertica、Greenplum、Apache Hive、Snowflake 等,并且提供了简单易用的界面,开发者上手几乎不会遇到任何困难。
1,下载安装
我们访问如下官网地址下载并安装即可:
2,配置数据源
(1)管理数据库,第一步肯定是要先配置 Data Source。首先点击左侧 Database 面板的加号(+),选择要连接的数据库类型:
(2)接着填写好相关的数据库连接信息,点击确定即可(确定前可以先点击下“Test Connection”按钮测试一下)
(3)可看到左侧面板显示了当前数据库连接,展开后会显示数据库表等信息,如果展开后没有任何信息,需要选中数据库连接,点击上面的旋转图标同步一下。
3,执行 SQL
(1)右键选中的数据库连接,选择 open console,就可以在右侧的控制台中书写 sql 语句了。
(2)语句的执行结果在底部显示:
(3)而切换到执行结果旁边的 Output 选项卡,则可以看到 sql 执行的时间等信息:
(4)有的时候我们要把某个字段置为 null(不是空字符串 ""),直接在字段上右键,选择 Set NULL 即可:
(5)对于需要多窗口查看结果的,即希望查询结果在新的 tab 中展示,可以点击 Pin Tab 按钮,那新查询将不会再当前 tab 中展示,而是新打开一个 tab:
4,行转列
(1)对于字段比较多的表,查看数据要左右拖动不太方便。我们可以选中需要查看的某一条数据,右键选择“Quick Documentation”
(2)这一条数据则会变成列显示,从而全部显示出来:
5,多光标模式
在编辑 sql 的时候,可能需要同时输入或同时删除一些字符,按下 alt + shift,同时鼠标在不同的位置点击,会出现多个光标,这样就可以多处同时进行输入:
6,代码注释
选中要注释的代码,按下相应快捷键便能能注释代码,或取消注释:
- Windows 系统:ctrl + / 是单行注释,ctrl + shift + / 是多行注释
- macOS 系统:command + / 是单行注释,command + option + / 是多行注释
7,查看代码历史
在文本编辑器中,右键选择“Local History”->“Show History”可以查看过去使用过的 sql 历史:
8,执行计划
(1)右键点击目标 sql 语言,选择 Explain Plan 可以产生执行计划:
(2)如果选择 Explain Plan(Raw) 则结果如下:
9,新建表
在数据库上点击右键,选择“NEW”-> “Table” 即可打开新建表窗口。顶部可以填写表名、表注释,中间可以点击下侧 + 号添加列,列类型 type 也是能自动补全,default 右侧的消息框图标点击后能对列添加注释,旁边的几个 tab 可以设置索引及外键。所有这些操作的 DDL 都会直接在底部显示
10,生成表的创建脚本
(1)如果我们需要数据库中某张已存在的表的创建脚本,可以右键点击该表,选择“SQL Scripts”->“SQL Generator...”
(2)然后页面下方就会出现建表 SQL 语句,同时左侧可以对语句进行一些设置。
11,导出数据
(1)右键点击需要导出的库或者具体的表,选择“Dump Data to File”即可将数据导出。我们可以导出 insert、update 形式的 sql 语句,也能导出为 html、csv、json 格式的数据。
(2)如果是导出到 csv 格式,还能控制导出的格式:
(3)也可以在查询结果视图中导出:
12,导入数据
(1)如果是 sql 语句,我们右键需要导入的数据库,点击“Run SQL Script...”选择 SQL 文件即可。
(2)如果是 html、csv、json 格式的数据,右键需要导入数据的库或者具体的表,选择“Import Data from File...”选择数据文件即可: