前言
DBeaver 是一个免费开源的通用数据库工具,其中22版本的推出了一个虚拟列、虚拟唯一键、虚拟外键、虚拟引用。真是一大神器,本篇就是简单唠叨一下”虚拟列“,”虚拟外键“的简单使用。
使用场景
虚拟列(virtual column )
虚拟列可以使用表达式在数据查看器中看到结果值,不能用于sql查询,因为它不在数据库中。
表达式目前使用的是 jexl3引擎进行解析,所以我们可以尽情的写表达式去处理我们的列转为需要输出的列。
可以用在运维场景:数据项翻译(1男2女;0未审核1一审2二审3退回4通过…),同一张表提供数据列的指标计算(销售价格÷利润=市盈率)
虚拟外键(virtual foreign key)
虚拟外键的使用我觉得就是为 ER 图查看器准备的,当定义完虚拟外键后,就可以看到 ER 图查看器中关联其他表的 ER 图,基于已经存在的数据库,想整理一个 ER 图,那可比 PDMan 方便多了
DBeaver的虚拟主键和虚拟外键这些都是为了丰富自身产品的功能引入的,都是在功能上使用的(ER图、表格展示数据、构造SQL脚本…),与数据库无关。举个例子:如查询一个无主键的表后在展示的数据列表修改一条数据,原本该软件构造的SQL根据表没有主键所以where语句后需要跟上全部的字段,在设置虚拟主键后where条件就只有虚拟主键的那个字段作为条件。
虚拟列可用方法概览
jexl操作符
一种是默认的 jexl3 操作符号,其使用方式可以直接是 操作符, 也可以使用对应的方法进行调用。
| 操作符 | 描述 |
|---|---|
布尔值and |
可以使用常用的&&运算符以及单词and,例如 cond1 and cond2和 cond1 && cond2是等价的。注意这个运算符不能重载 |
布尔值or |
可以使用常用的||运算符以及单词or,例如 cond1 or cond2和 cond1 || cond2是等价的。注意这个运算符不能重载 |
布尔值not |
可以使用常用的!运算符以及单词not,例如 !cond1和 not cond1是等价的。注意这个运算符不能重载 |
按位and |
&使用 通常的运算符,例如33 & 40010 0001 & 0000 0100 = 0。 |
按位or |
|使用 通常的运算符,例如33 | 40010 0001 | 0000 0100 = 0010 0101 = 37。 |
按位xor |
^使用 通常的运算符,33 ^ 4例如 0010 0001 ^ 0000 0100 = 0010 0100 = 37。 |
按位complement |
~使用 通常的运算符,例如~33 |

介绍DBeaver中虚拟列和虚拟外键的功能与应用场景,包括运维数据翻译、指标计算及ER图展示。
最低0.47元/天 解锁文章
4239

被折叠的 条评论
为什么被折叠?



