SQL编辑器的隐藏技能:KingbaseES 配套 KSQL Developer 使用笔记

SQL编辑器的隐藏技能:KingbaseES 配套 KSQL Developer 使用笔记

KSQL Developer 是电科金仓的独立版数据库开发工具,主要给应用开发者用,查数据、建对象、管连接都在同一个界面里完成。它支持的库挺杂,KingbaseES 的 V8R3、V8R6、V9,Oracle 的 19c、21c、23c,SQLServer 2016 往上,MySQL 5.7 往上,四类库来回切,连接配置各管各的。这篇只聊它的 SQL编辑器,别的先放一边。

入口其实有三个

最常见的走法,是在数据库导航器里右键连接,菜单上点 SQL 编辑器,F3 用来复用已有的窗口,Ctrl+] 用来新建,主菜单上的 SQL编辑器 里也有近期和新建两个选项,配合项目视图翻历史脚本比较顺。

还有一条容易搞混:连接的 SQL 编辑器背后是一个 .sql 文件,能保存、能改,关掉再打开还在;表或视图的 SQL 控制台没有关联的 .sql 文件,关窗口时选不保存,内容就没了。手册里专门标注了这一点。

界面上其实就六块

按手册的划分,编辑器由六部分组成:顶部标签页显示当前脚本或窗口的名字,工具栏是当前查询窗口自己的那一排,左侧是行号,中间是 SQL 编辑区域,右侧是滚动条,最下面是连接控制栏。前五块都好理解,第六块显示当前 SQL 执行用的是哪个连接,同时挂着事务控制,多连接并行调试的时候,这一栏决定了你的语句会落到哪个库上。

先说 Alt+/ 这个键

这个功能手册里叫 SQL 内容助理,可以自动补全数据库对象名、SQL 命令以及查询里的其他关键字,触发方式是在需要的位置按 Alt+/,或者右键点一下 SQL 内容助理,快捷键还包括 Ctrl+空格键。

写多列 INSERT 时最有用的场景是星号展开:写下 INSERT INTO tableName (*),把光标挪到括号里按 Alt+/,星号会直接变成这张表的所有列名。括号不一定是圆括号,()、\[\]、{} 都认。

模板这东西

模板的作用是把常用的 SQL 语句快速插进编辑器,输入模板名然后按 Tab 就能展开,也可以在编辑器里右键点 SQL 模板,从列表里双击需要的名字,截图右边那块是预览。模板可以改也可以加,入口在 窗口 → 首选项 → KSQL Developer → 编辑器 → SQL 编辑器 → 模板,这条路径有四层,按直觉它应该归在数据库那一类下面,实际上归在编辑器里。团队里对建表、建包、建函数都有约定,骨架基本一样,把骨架固化成模板比每次口头讲一遍省事。

那几个格式化的键我建议背下来

选中 SQL 之后右键,格式菜单里有一整排:格式化 SQL 是 Ctrl+Shift+F,更改为大写是 Ctrl+Shift+X,更改为小写是 Ctrl+Shift+Y,切换行注释是 Ctrl+/,切换块注释是 Ctrl+Shift+/,还有一个移除行首和行尾空格。格式化之后的 SQL 在代码评审里好读很多,所以敲完一段过一遍挺值。菜单里还有个变换为带分隔符的列表,点它会弹出分割文本选项对话框,可以设列分隔符和结果分隔符,批量处理 IN 条件里的值列表时挺顺手。

执行有三个键

执行 SQL 语句是 Ctrl+Enter,作用于光标所在行或者选中的文本;在新标签页中执行 SQL 是 Ctrl+\,结果会单独开一个新结果选项卡;执行 SQL 脚本是 Alt+X,会把编辑器里所有查询当一个脚本连续跑。跑脚本的时候,工具用语句分隔符来切分,默认是分号,这个默认值能在 窗口 → 首选项 → KSQL Developer → SQL 编辑器 → SQL 处理 里改。同一个菜单里还有语法检查,以及执行计划 Ctrl+R。

编辑器自带执行日志和输出窗口,每执行一次,它会记下执行的 SQL 语句、语句的执行顺序以及单条语句的耗时,慢在哪一句,看这一眼就够了,不用再去翻数据库侧的日志。

事务的默认值我想多说两句

编辑器里有两个提交模式,自动提交和手动提交。前者改完立刻送进库,后者需要先确认再提交或者回滚,切换只在 SQL 编辑器里有效。默认值随连接类型走,生产连接类型默认手动提交,手册的说法是用来保护数据库免受无意更改,代价是敲错语句时还留一次回滚的机会。工具栏上那两个按钮,提交和回滚,只有手动模式下才是亮的,自动模式下是灰的,点不动。

事务日志窗口会把当前会话里所有事务型查询列出来,INSERT、DELETE、UPDATE 这些,颜色约定是绿色成功提交、橙色回滚、红色错误,没有特殊颜色的就是在进行中或者还挂着。窗口下面有两个复选框,显示所有查询和显示之前的事务记录。想看得更细,事务日志按钮旁边有个箭头,下拉里是待处理事务,上表是当前活动连接和它的事务数,下表是选中连接的具体明细,表空着说明这会儿没有挂起的事务。挂起的事务会锁表,所以这个窗口值得经常看一眼。

结果标签页也有讲究

一个查询可能产出多个结果集,每个结果集对应一个选项卡,命名规则是 Results (),A 是查询的索引,B 是这个查询结果集的索引,看到 Results 1 (1) 和 Results 1 (2),就知道它们出自同一条查询。选项卡可以用鼠标拖着挪位置,右键菜单里的绑定标签页能把它固定住,固定之后的标签会堆到左边,可以在固定标签之间移动,但不能和未固定的混在一起,而且固定标签必须先取消固定才能关掉。想数一条查询会返回多少行,选中语句,走菜单 SQL编辑器 → 选择行计数,关闭标签页是 Ctrl+Shift+\。
[**### 查询管理器我用得最少

查询管理器的入口在事务日志按钮旁边的箭头上,点开下拉才有,它记录在 KSQL Developer 里执行过的所有 SQL,不只是语句本身,还有执行事件、受影响行数和执行结果,按持续时间排序就能定位到拖后腿的那一句。工具栏上的过滤能打开属性窗口,按查询类型和对象类型筛条目,每页条数默认 200。想把日志留久一点,可以勾上保存日志到文件,再指定一个文件夹,默认存 90 天,这个设置改完要重启程序才生效,窗口里也标了。

最后补几个脚本的键

脚本这块常用的键有几个:Ctrl+S 存到当前项目空间,文件落在项目视图的 Scripts 文件夹里;存到文件系统走 文件 → 保存 SQL 脚本;从文件系统导进来是 Ctrl+Alt+Shift+o;重命名是 CTRL+F2;改坏了走 文件 → 还原,能把脚本恢复到磁盘上的状态。没保存的内容会在编辑器左侧用彩色高亮标出来,不止是脚本名后面那个星号。
同属电科金仓产品线的 KStudio 也是 SQL 编辑工具,功能面比 KSQL Developer 更宽,适合需要更完整 IDE 能力的场景。如果你的环境里也有 KingbaseES,又还在命令行里硬敲 SQL,可以花一个下午装一个 KSQL Developer 试试,装完第一件事,先按一遍 Alt+/。

附一:装之前先看一眼环境要求

手册给的硬件门槛不高。CPU 支持 x86 64 位、MIPS 和 ARM 三种;可用内存至少 1GB;硬盘方面,安装目录要留至少 1GB,用户 HOME 目录要留至少 100MB;网络是千兆以太网。软件环境只提了一项,gtk 图形工具包需要 3.2.0 或以上版本。
支持的数据库版本也列一下,免得装完发现连不上。KingbaseES 支持 V8R3、V8R6、V9;Oracle 支持 19c、21c、23c;SQLServer 需要 2016 及以上;MySQL 需要 5.7 及以上。连接走 JDBC 驱动,安装包里已经内置,也可以手动替换驱动版本。

附二:常用快捷键速查

打开与执行:

快捷键 作用
F3 打开 SQL 编辑器
Ctrl+] 新建 SQL 编辑器
Ctrl+Alt+Enter 打开 SQL 结果面板
Ctrl+Enter 执行 SQL 语句
Ctrl+\ 在新标签页中执行 SQL
Alt+X 执行 SQL 脚本
Ctrl+Alt+Shift+X 在单独的标签页中执行语句
Ctrl+R 执行计划
Ctrl+Alt+Shift+C 选择行计数
Ctrl+Alt+Shift+A 选择所有行
补全与格式化:
快捷键 作用
------------------ -----------------
Alt+/ SQL 内容助理,星号展开列名
Ctrl+空格键 SQL 内容助理
Ctrl+Alt+空格键 SQL 模板
F2 SQL 上下文信息
F4 打开声明
Ctrl+Shift+F 格式化 SQL
Ctrl+Shift+X 更改为大写
Ctrl+Shift+Y 更改为小写
Ctrl+/ 切换行注释
Ctrl+Shift+/ 切换块注释
Ctrl+Alt+Shift+W 切换自动换行
结果集与脚本:
快捷键 作用
------------------ ------------
F5 刷新结果集
F7 显示或隐藏结果面板
F11 设置过滤条件
Ctrl+Shift+\ 关闭标签页
Ctrl+Shift+6 最大化结果面板
Ctrl+S 保存脚本到项目空间
Ctrl+Alt+Shift+o 导入 SQL 脚本
CTRL+F2 重命名 SQL 脚本
这张表可以直接贴在显示器边上。真正高频的其实只有四个:Alt+/、Ctrl+Enter、Ctrl+R、Ctrl+Shift+F。**](https://link.juejin.cn?target= "")
相关推荐
努力进修1 小时前
时序数据长期承载难题:从压缩、批量写入到数据组织优化
java·开发语言·数据库
CaptainT1 小时前
先把例子跑起来:MySQL 环境与本文的示例数据
数据库·后端·mysql
Dovis(誓平步青云)1 小时前
总用电下降了,为什么家庭能源看板仍然提示异常
java·开发语言·数据库·人工智能·算法·电脑·能源
xiaogai_gai1 小时前
电商采购入库对接财务VMI采购入库(单号回写)实战教程
大数据·数据库
夜雪一千1 小时前
MySQL中查询和操作JSON类型的数据
数据库·mysql·json
一条破秋裤2 小时前
05_设备树自定义属性_写入读取验证
linux·网络·数据库
辛迪聊物业数字化2 小时前
物业数字化选型避坑:3步判断系统是否适配你的业态
数据库
砚底藏山河2 小时前
量化新手误区:因子计算与行情数据的工程化解耦
java·数据库·python·金融
程序 代码狂人2 小时前
SQL COUNT 统计 NULL 与空字符串 ‘‘ 差异(Oracle & Impala)
数据库·sql·oracle