0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一款超级好用的数据库客户端工具

算法与数据结构 来源:博客 作者:Atzuge 2021-08-25 16:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:atzuge

链接:https://www.cnblogs.com/zuge/p/7397255.html

最近被同事案例了一款数据库客户端工具:DataGrip,大爱!

其实,这个标题的话肯定会引出一些杠精,为了不给杠精留机会,多做一点说明:Navicat 和 DataGrip 都是非常优秀的数据管理工具,各有所长,这里就不做对比了!你喜欢什么样的风格用什么样的产品,就我个人而言更喜欢 DataGrip 一些。把杠精安排的明明白白!

DataGrip 版是由 JetBrains 公司(就是那个出品 Intellij IDEA 的公司)推出的数据库管理软件。如果你不爱折腾的话,这家公司出品的很多 IDE 都是你的最佳选择,比如你进行 Python 开发的可以选择 JetBrains 全家桶中的 PyCharm 。

DataGrip 支持几乎所有主流的关系数据库产品,如 DB2、Derby、H2、MySQL、Oracle、PostgreSQL、SQL Server、Sqllite 及 Sybase 等,并且提供了简单易用的界面,开发者上手几乎不会遇到任何困难。

我相信,当你第一眼看到 DataGrip 以后,会有一种惊艳的感觉,就好比你第一眼看到一个姑娘,就是那么一瞥,你对自己说,就是她了!废话不多说,来看看 DataGrip 的常用功能。

下载

DataGrip 下载链接如下 https://www.jetbrains.com/datagrip/download。安装过程也很简单,双击安装,下一步,中间会让你选择主题,本人选择的是经典的 Darcula,安装完成后,启动,界面如下

配置 Data Source

相信使用过 IDEA 的同学看到这个界面都会感到很亲切。File->DataSource :配置数据源。

DataGrip 支持主流的数据库。你也可以在 Database 视图中展开绿色的+号,添加数据库连接

选择需要连接的数据库类型

在面板中,左上部分列出了已经建立的数据库连接,点击各项,右侧会展示当前连接的配置信息,General 面板中,可以配置数据库连接的信息,如主机、用户名、密码等,不同数据库配置信息不完全相同,填入数据库 URL,注意,URL 后有个选项,可以选择直接填入 url,那么就不需要单独填主机名、端口等信息了。

Driver 部分显示数据库驱动信息,如果还没有下载过驱动,底部会有个警告,提示缺少驱动


点击 Driver 后的数据库类型,会跳转到驱动下载页面,点击 download,下载完会显示驱动包
如果下载的驱动有问题,可以手动添加本地驱动包,在试用过程中,创建 Oracle 连接时,下载的驱动包就有问题,提示缺少 class,点击右侧绿色的+号,选择本地下载好的 jar 包,通过右侧上下箭头,将导入的 jar 包移到最上位置就 OK 了

点击 Test Connection,查看配置是否正确,接下来就可以使用了。

常用设置

打开 DataGrip,选择 File->Settings,当前面板显示了常用设置项

基本上默认设置就足够了,要更改设置也很简单,左侧菜单已经分类好了,第一项是数据库相关的配置,第二项是配置外观的,在这里可以修改主题,key map 修改快捷键,editor 配置编辑器相关设置,在这里可以修改编辑器字体,展开 edit 项: Editor->Color & Fonts->Font
需要将当前主题保存一下,点击 save as,起个名,选择重命名后的主题就能修改了,这里我选择习惯的 Conurier New 字体,大小为 14 号,点击右下角的 apply,点击 OK 点击查看原始大小图片

其他的没啥好设置的了。

数据库常用操作

接下来,我们来使用 DataGrip 完成数据库的常用操作,包括查询数据、修改数据,创建数据库、表等。

点击查看原始大小图片
左上区域显示了当前数据库连接,展开后会显示数据库表等信息,如果展开后没有任何信息,需要选中数据库连接,点击上面的旋转图标同步一下,下方有个 More Schema 选项,点击可以切换不同的 schema。

sql 语句编写

右键选中的数据库连接,选择 open console,就可以在右侧的控制台中书写 sql 语句了。

img

DataGrip 的智能提示非常爽,无论是标准的 sql 关键字,还是表名、字段名,甚至数据库特定的字段,都能提示,不得不感叹这智能提示太强大了,Intellij IDEA 的智能提示也是秒杀 eclipse。

写完 sql 语句后,可以选中,电子左上侧绿色箭头执行


也可以使用快捷键 Ctrl+Enter,选中情况下,会直接执行该 sql,未选中情况下,如果控制台中有多条 sql,会提示你要执行哪条 sql。

之前习惯了 dbvisualizer 中的操作,dbvisualizer 中光标停留在当前 sql 上(sql 以分号结尾),按下Ctrl+.快捷键会自动执行当前 sql,其实 DataGrip 也能设置,在 setting->Database-General中


语句执行时默认是提示,改成 smallest statement 后,光标停留在当前语句时,按下 Ctrl+Enter 就会直接执行当前语句。

语句的执行结果在底部显示


如果某列的宽度太窄,可以鼠标点击该列的任意一个,使用快捷键Ctrl+Shift+左右箭头可以调整宽度,如果要调整所有列的宽度,可以点击左上角红框部分,选择所有行,使用快捷键Ctrl+Shift+左右箭头调整

修改数据

添加行、删除行也很方便,上部的+、-按钮能直接添加行或删除选中的行,编辑列同样也很方便,双击要修改的列,输入修改后的值,鼠标在其他部分点击就完成修改了


有的时候我们要把某个字段置为 null,不是空字符串"",DataGrip 也提供了渐变的操作,直接在列上右键,选择 set null
对于需要多窗口查看结果的,即希望查询结果在新的 tab 中展示,可以点击 pin tab 按钮,那新查询将不会再当前 tab 中展示,而是新打开一个 tab

旁边的 output 控制台显示了执行 sql 的日志信息,能看到 sql 执行的时间等信息


我就问这么吊的工具,还有谁!!!

新建表

要新建表也是相当简单、智能,选中数据库连接,点击绿色+号下选择 table


在新打开的窗口中,可以填写表信息
我就问你看到这个窗口兴奋不兴奋!!!

顶部可以填写表名、表注释,中间可以点击右侧绿色+号添加列,列类型 type 也是能自动补全,default 右侧的消息框图标点击后能对列添加注释,旁边的几个 tab 可以设置索引及外键

所有这些操作的 DDL 都会直接在底部显示


我就问你怕不怕

表建完后,可以点击下图中的 table 图标,打开表查看视图


可以查看表的数据,也能查看 DDL 语句

数据库导出

这些基本功能的设计、体验,已经惊艳到我了,接下来就是数据的导出。

DataGrip 的导出功能也是相当强大

选择需要导出数据的表,右键,Dump Data To File


即可以导出 insert、update 形式的 sql 语句,也能导出为 html、csv、json 格式的数据

也可以在查询结果视图中导出


点击右上角下载图标,在弹出窗口中可以选择不同的导出方式,如 sql insert、sql update、csv 格式等

如果是导出到 csv 格式,还能控制导出的格式

导出后用 excel 打开是这种结果


除了能导出数据外,还能导入数据

选择表,右键->Import from File,选择要导入的文件


注意,导出的时候如果勾选了左侧的两个 header 选项,导入的时候如果有 header,也要勾选,不然会提示列个数不匹配

小技巧

导航+全局搜索

关键字导航

当在 datagrip 的文本编辑区域编写 sql 时,按住键盘 Ctrl 键不放,同时鼠标移动到 sql 关键字上,比如表名、字段名称、或者是函数名上,鼠标会变成手型,关键字会变蓝,并加了下划线,点击,会自动定位到左侧对象树,并选中点击的对象

快速导航到指定的表、视图、函数等

在 datagrip 中,使用 Ctrl+N 快捷键,弹出一个搜索框,输入需要导航的名称,回车即可

全局搜索

连续两次按下 shift 键,或者鼠标点击右上角的搜索图标,弹出搜索框,搜索任何你想搜索的东西

结果集搜索

在查询结果集视图区域点击鼠标,按下 Ctrl+F 快捷键,弹出搜索框,输入搜索内容,支持正则表达式、过滤结果

导航到关联数据

表之间会有外检关联,查询的时候,能直接定位到关联数据,或者被关联数据,例如 user1 表有个外检字段 classroom 指向 classroom 表的主键 id,在查询 classroom 表数据的时候,可以在 id 字段上右键,go to,referencing data


选择要显示第一条数据还是显示所有数据
会自动打开关联表的数据
相反,查询字表的数据时,也能自动定位到父表

数据转换

结果集数据过滤

对于使用 table edit(对象树中选中表,右键->table editor)打开的结果集,可以使用条件继续过滤结果集,如下图所示,可以在结果集左上角输入款中输入 where 条件过滤


也可以对着需要过滤数据的列右键,filter by 过滤

行转列

对于字段比较多的表,查看数据要左右推动,可以切换成列显示,在结果集视图区域使用 Ctrl+Q 快捷键

变量重命名

鼠标点击需要重命名的变量,按下 Shift+F6 快捷键,弹出重命名对话框,输入新的名称

自动检测无法解析的对象

如果表名、字段名不存在,datagrip 会自动提示,此时对着有问题的表名或字段名,按下 Alt+Enter,会自动提示是否创建表或添加字段

权限定字段名

对于查询使用表别名的,而字段中没有使用别名前缀的,datagrip 能自动添加前缀,鼠标停留在需要添加别名前缀的字段上,使用 Alt+Enter 快捷键

格式化

*通配符自动展开

查询的时候我们会使用 select 查询所有列,这是不好的习惯,datagrip 能快速展开列,光标定位到后面,按下 Alt+Enter 快捷键

大写自动转换

sql 使用大写形式是个好的习惯,如果使用了小写,可以将光标停留在需要转换的字段或表名上,使用 Ctrl+shift+U 快捷键自动转换

sql 格式化

选中需要格式化的 sql 代码,使用 Ctrl+Alt+L 快捷键

datagrip 提供了一个功能强大的编辑器,实现了 notpad++的列编辑模式

列编辑

多光标模式

在编辑 sql 的时候,可能需要同时输入或同时删除一些字符,按下 alt+shift,同时鼠标在不同的位置点击,会出现多个光标

代码注释

选中要注释的代码,按下 Ctrl+/或 Ctrl+shift+/快捷键,能注释代码,或取消注释

列编辑

按住键盘 Alt 键,同时按下鼠标左键拖动,能选择多列,拷贝黏贴等操作

历史记录

代码历史

在文本编辑器中,邮件,local history,show history,可以查看使用过的 sql 历史

命令历史

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制
    +关注

    关注

    5

    文章

    1035

    浏览量

    126026
  • 数据库
    +关注

    关注

    7

    文章

    4101

    浏览量

    68791

原文标题:发现一款好用到爆的数据库工具,被惊艳到了!

文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Rambus发布DDR5 9600客户端芯片组

    Rambus Inc.(纳斯达克:RMBS)近日正式推出完整的DDR5 9600客户端内存模块芯片组,专为新代AI PC中的高性能CUDIMM、CQDIMM和CSODIMM模块设计。芯片组由三颗
    的头像 发表于 06-01 10:01 1362次阅读

    【米尔TI AM62L开发板试用】+数据库操作及功能测试

    没想到的是在TI AM62L开发板上也提供了数据库的功能,其选取版本是SQLite3,它是一款轻型的数据库,所遵守的是关系型数据库管理系统,具有占用资源低的特点,所移植的版本为3.45
    发表于 05-11 11:31

    各种PLC设备、智能仪表快速实现OPC UA服务(含客户端测试过程)

    埃和智能网关支持各种PLC设备、智能仪表通过HTTP、MQTT协议JSON格式对接MES等系统平台,也可以对接MySQL等SQL数据库,还可将设备数据转为OPC UA服务,支持多客户端
    的头像 发表于 04-30 13:48 244次阅读
    各种PLC设备、智能仪表快速实现OPC UA服务<b class='flag-5'>端</b>(含<b class='flag-5'>客户端</b>测试过程)

    Yearning+客户端+手工EXPLAIN,NineData社区版能作为替代方案?

    Yearning 核心聚焦 SQL 审核与发布流程,慢 SQL 治理需搭配客户端和手工分析,链路割裂。NineData 社区版以数据库 DevOps 为底座,打通慢日志采集、模板聚合、诊断优化
    的头像 发表于 03-26 10:52 188次阅读
    Yearning+<b class='flag-5'>客户端</b>+手工EXPLAIN,NineData社区版能作为替代方案?

    Navicat、DBeaver和NineData这三款数据库管理工具,在变更审批上的区别到底有多大?

    目前市场上,Navicat、DBeaver、NineData 是常用的三款数据库管理工具,但三者在数据变更审批这核心能力上的差异,足以影响团队的研发效率和
    的头像 发表于 03-23 15:55 905次阅读

    数据库管理工具推荐:为什么 NineData 是主流且实用的选择

    NineData是一款面向企业级数据管理的综合平台,提供数据库DevOps、数据复制、备份恢复和数据对比等全链路能力。其特色在于SaaS、社
    的头像 发表于 03-19 15:26 854次阅读

    EtherCAT FOE工作原理揭秘:客户端-服务器模型如何运转?

    上期我们聊了EtherCATFOE的五大应用场景,本期深入解析其底层工作机制。FOE究竟是如何实现文件传输的?答案藏在客户端-服务器模型中。核心架构:一客户端多服务器在EtherCAT网络中,FOE
    的头像 发表于 03-02 11:50 349次阅读
    EtherCAT FOE工作原理揭秘:<b class='flag-5'>客户端</b>-服务器模型如何运转?

    agile_ftp传输文件时客户端报错误怎么解决?

    ]客户端使用的filezilla [size=21.3333px] [size=21.3333px]现象: [size=21.3333px]filezilla客户端可以正常上传文件,但传输完毕时客户端会报
    发表于 11-05 10:49

    libmodbus问题:TCP模式下客户端超时断开后无法再次重连怎么解决?

    进行次收发后断开连接,再次启动短连接进行通讯时被提示:”服务器拒绝“ 综上2种情况,libmodbus该如何修改才能让支持让断开的客户端再次连接? =
    发表于 10-14 08:17

    Python modbus-tk如何获得客户端信息?

    Python modbus-tk如何获得客户端信息
    发表于 08-07 06:01

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    Oracle数据库故障: 某公司台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持
    的头像 发表于 07-24 11:12 991次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—服务器异常断电导致Oracle<b class='flag-5'>数据库</b>故障的<b class='flag-5'>数据</b>恢复案例

    主流国产数据库的技术特点

    随着数字经济的快速发展和数据安全要求的提升,国产数据库正迎来前所未有的发展机遇。在信创浪潮推动下,达梦数据库、TiDB、华为高斯数据库等国产数据库
    的头像 发表于 07-14 11:08 1455次阅读

    是否可以将客户端控件与CYW920706WCDEVAL起使用?

    是否可以将客户端控件与CYW920706WCDEVAL起使用? 我想用它来发现蓝牙 BR/EDR,然后将其与其他设备配对。 有客户端控制的下载链接或文档吗? 另外,你有 AIROC Connect 蓝牙应用程序的文档吗?
    发表于 07-04 07:50

    数据库数据恢复—MongoDB数据库文件丢失的数据恢复案例

    MongoDB数据库数据恢复环境: 台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库
    的头像 发表于 07-01 11:13 915次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—MongoDB<b class='flag-5'>数据库</b>文件丢失的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—SQL Server数据库被加密如何恢复数据

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 953次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>被加密如何恢复<b class='flag-5'>数据</b>?