DataGrip

> DataGrip — 一个跨平台数据库IDE,让你写SQL像写代码一样舒服,告别Navicat的土味界面和DBeaver的卡顿。 --- 先别急着喷我标题党。我知道提到数据库工具,很多人第一反应是Navicat或者DBeaver,甚至有人直接用命令行。但如果你写过复杂的SQL、调试过存储过程、或者被几百行的JOIN语句折磨过,你一定会理解我为什么说DataGrip是“数据库工具里的JetBrains”——因为它本身就是JetBrains家的。 **这玩意儿到底解决什么问题?** 简单说,它把数据库操作从“能用”提升到了“好用”。具体痛点: - 你写SQL的时候,它像IntelliJ一样给你自动补全、高亮、格式化,甚至能识别表结构里的字段名(不用你手敲)。 - 你在一个连接里同时看MySQL、PostgreSQL、Oracle、SQLite,不用来回切换工具。 - 你执行一条慢查询,它能直接给你执行计划,不用复制到EXPLAIN里再手动分析。 - 你改了表结构,它能生成对应的ALTER语句,还能对比两个数据库的差异。 - 最爽的是,它内置了版本控制,你写的SQL脚本可以直接提交到Git,不用再手动复制到文本文件里。 说白了,它就是给数据库操作加了“IDE的皮”,同时保留了数据库工具该有的“裸能力”。 **下载方式** 官网直接下,别去第三方网站。 [官网下载链接](https://www.jetbrains.com/datagrip/) 注意,它是付费软件,但JetBrains有30天免费试用。如果你有学生身份,直接去申请免费教育授权。如果你只是偶尔用,可以下载社区版(叫DataGrip Community?不,它没有社区版,只有Ultimate版)。不过好消息是,JetBrains全家桶用户(比如你有IntelliJ IDEA Ultimate)可以直接用插件,不用单独买。 **安装方法** Windows用户:下载.exe,双击,一路Next,完事。 macOS用户:下载.dmg,拖到Applications文件夹,完事。 Linux用户:下载.tar.gz,解压到某个目录,运行bin/datagrip.sh。或者用Snap:`sudo snap install datagrip`。 装完之后,第一次打开会让你选择主题(Darcula还是Light),然后直接进入主界面。别怕,界面很干净,左边是数据库浏览器,右边是SQL编辑器,下面是结果区。 **基础使用教程** 1. **创建连接**:点左上角“+”,选数据库类型(比如MySQL)。填主机、端口、用户名、密码。测试连接,成功后就出现在左侧列表里。 2. **浏览数据**:展开连接,能看到所有数据库、表、视图、存储过程。双击一张表,右侧直接显示数据,像Excel一样。点“编辑”可以改数据,改完提交。 3. **写SQL**:点“新建SQL文件”,输入`SELECT * FROM users WHERE age > 18`,然后按Ctrl+Enter(macOS是Cmd+Enter)执行。结果出现在下方,还能导出CSV。 4. **自动补全**:输入`SELECT * FROM u`,它会自动提示`users`表。输入`WHERE`,它会提示字段名。如果你记不清字段,直接输入表名点`.`,也能拉出所有字段。 5. **格式化SQL**:选中一堆乱糟糟的SQL,按Ctrl+Alt+L(macOS是Cmd+Option+L),瞬间变得整整齐齐。 6. **查看执行计划**:执行SQL后,下方结果区有个“执行计划”标签,点开就能看到全表扫描还是索引扫描,有没有走索引一目了然。 **进阶技巧(这才是重点)** **技巧1:用“数据库工具”面板管理多个连接** 很多人只用一个连接,但如果你同时开发多个项目,建议把不同环境(dev、test、prod)的连接分组。右键连接名,选“移动到组”,然后建一个“生产环境”组,密码单独存。这样不会搞混。 **技巧2:SQL脚本的“临时文件”功能** 有时候你不想建一个真正的.sql文件,只是想跑个临时查询。按Ctrl+Shift+F4(macOS是Cmd+Shift+F4)打开一个临时缓冲区,写完直接执行,关掉不保存。适合调试。 **技巧3:用“比较”功能比对数据库** 右键两个数据库(比如dev和prod),选“比较数据库”,它能列出表结构差异、索引差异、数据差异。这个功能在发布更新时特别有用,不用自己写脚本比对。 **技巧4:自定义“活动模板”** 比如你经常写 `SELECT * FROM table WHERE id = ?`,可以设置一个缩写:设置 -> 编辑器 -> 活模板,添加一个模板,缩写是`selid`,内容就是上面那句,光标自动定位到`?`。以后输入`selid`按Tab,直接生成。 **技巧5:用“控制台”跑非查询语句** 有时候你要执行UPDATE或DELETE,但担心误操作。可以右键连接,选“新建控制台”,然后输入`UPDATE ... WHERE ...`,它会弹出一个确认框,显示影响行数。比直接执行安全。 **技巧6:连接SSH隧道** 如果你要连远程数据库,但只能通过跳板机访问,DataGrip支持SSH隧道。在连接配置里,选“SSH/SSL”标签,填上跳板机的IP和用户名,选“SSH隧道”,然后填上数据库的内网地址。完美穿透。 **技巧7:用“导出”功能生成INSERT语句** 你想把一张表的数据复制到另一个环境,不用导出SQL文件再导入。右键表 -> 导出数据 -> 选择“SQL INSERT语句”,它会生成一串INSERT,你直接复制到目标库执行。 **技巧8:快捷键“Ctrl+Shift+F”全局搜索** 不只是搜索代码,它能搜索所有数据库对象的名字。比如你想找所有包含“order”的表,输入`order`,它能列出所有匹配的表、视图、列名。比在左侧手动展开快多了。 **最后说点掏心窝子的** DataGrip最大的缺点是贵,而且吃内存(如果你开一堆连接,8G内存可能会卡)。但如果你每天和数据库打交道超过2小时,这钱花得值。尤其是它和IntelliJ IDEA的无缝切换(同一个快捷键、同一个UI逻辑),让你不用学两套操作。 如果你实在不想花钱,可以试试DBeaver(免费开源),但说实话,DBeaver的自动补全和代码分析能力差了DataGrip一个档次。或者你用VS Code + SQL插件凑合,但体验就像开手动挡和自动挡的区别。 总之,如果你写SQL写到怀疑人生,试试DataGrip,你会回来感谢我的。