DBeaver 26.1.2:AI 聊天写 SQL,数据编辑器查找也更顺手了

2026-07-06 32 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

DBeaver 26.1.2 这次更新不算“重做一遍工作台”,但很贴近日常数据库操作:AI 助手新增聊天能力,可以帮助生成 SQL 查询并回答问题;Data Editor 的 Find/Replace 界面更新;查找框还多了一个快速筛选入口,可以把不匹配的行直接隐藏起来。对经常在表格数据、SQL 编辑器和结果集之间来回切换的人来说,这些都是省鼠标、少走神的改动。

AI 助手从“补一句 SQL”变成“能对话”

这次最显眼的变化是 AI 助手新增 AI Chat。它的价值不只是“帮我写一条 SELECT”,更适合处理那些带上下文的问题:

  • 根据表结构生成查询;
  • 解释一段已有 SQL;
  • 把业务口径翻译成过滤条件;
  • 帮你检查 JOIN、聚合、日期条件是否合理。

不过,AI 生成 SQL 的边界也要说清楚:它不知道你公司真实的数据含义,除非你把表结构、字段说明、样例口径说清楚。生产库上尤其不能直接执行生成结果,至少要先 EXPLAIN,再限制返回行数,必要时走只读账号。

可以这样向 AI Chat 提问,而不是只丢一句“写 SQL”:

我在 PostgreSQL 中有两张表:

orders(id, customer_id, status, total_amount, created_at)
customers(id, email, country, created_at)

请生成一条 SQL:
1. 统计 2024 年每个月每个国家的已完成订单金额
2. 只包含 status = 'paid' 的订单
3. 输出字段:month, country, revenue, order_count
4. 按 month 升序、revenue 降序排序
5. SQL 需要兼容 PostgreSQL

拿到结果后,不要急着跑全表。可以先用下面这种方式验证执行计划和样本结果:

EXPLAIN
SELECT
  date_trunc('month', o.created_at) AS month,
  c.country,
  SUM(o.total_amount) AS revenue,
  COUNT(*) AS order_count
FROM orders o
JOIN customers c ON c.id = o.customer_id
WHERE o.status = 'paid'
  AND o.created_at >= DATE '2024-01-01'
  AND o.created_at < DATE '2025-01-01'
GROUP BY 1, 2
ORDER BY month ASC, revenue DESC;

SELECT
  date_trunc('month', o.created_at) AS month,
  c.country,
  SUM(o.total_amount) AS revenue,
  COUNT(*) AS order_count
FROM orders o
JOIN customers c ON c.id = o.customer_id
WHERE o.status = 'paid'
  AND o.created_at >= DATE '2024-01-01'
  AND o.created_at < DATE '2025-01-01'
GROUP BY 1, 2
ORDER BY month ASC, revenue DESC
LIMIT 50;

需要改的地方主要是表名、字段名、时间范围和状态枚举。AI 可以加速起草,但最终责任仍在执行 SQL 的人手里。

Find/Replace 更像一个高频工具,而不是临时弹窗

Data Editor 的 Find/Replace 功能界面更新,说明 DBeaver 团队在继续打磨结果集编辑体验。很多数据库工具的查找功能只服务于“定位一个值”,但在真实排查里,查找经常是连续动作:找一个订单号、看相邻字段、替换某个测试值、再过滤一批异常行。

新的快速筛选尤其适合这种场景:在 Find 字段输入值后,通过专用图标隐藏不匹配的行。它和 SQL WHERE 的区别在于:

  • SQL 过滤发生在数据库端,适合大数据量和可复现查询;
  • Data Editor 快速筛选发生在当前查看上下文里,适合临时排查和人工核对;
  • 快速筛选不会替代严肃的数据分析 SQL,但能减少你在结果集中滚动查找的时间。

比如你已经打开了一张订单表,想快速查看所有包含 refund 的行,可以先在 Data Editor 的 Find 输入 refund,再点击隐藏不匹配行的图标。这个动作更像表格里的“临时视图”,适合短时间检查。

可以这样实践:用 SQL 先缩小范围,再用 Data Editor 快速筛选

对于大表,不建议把全部数据拉到 DBeaver 里再靠 Find 处理。更稳的做法是:先用 SQL 把结果集缩到可读范围,再用 Data Editor 的查找和快速筛选做人眼检查。

下面是一个可以直接改造的 PostgreSQL 示例,用于排查最近 7 天内金额异常或状态异常的订单:

SELECT
  id,
  customer_id,
  status,
  total_amount,
  created_at
FROM orders
WHERE created_at >= now() - interval '7 days'
  AND (
    total_amount <= 0
    OR status NOT IN ('pending', 'paid', 'refunded', 'cancelled')
  )
ORDER BY created_at DESC
LIMIT 500;

在 DBeaver 中可以按这个流程使用:

  1. 在 SQL Editor 执行上面的查询,把 orders、字段名和状态枚举改成你的实际模型。
  2. 在结果集 Data Editor 中打开 Find
  3. 输入你关心的值,例如 refunded、某个 customer_id 或异常状态。
  4. 使用快速筛选图标隐藏不匹配行。
  5. 如果筛选条件值得沉淀,再把它改写回 SQL 的 WHERE 条件中。

这个流程的关键是分工:数据库负责缩小数据规模,DBeaver 的界面负责快速浏览和核对。这样不会把 GUI 当成数据仓库,也不会为了临时排查写一堆一次性 SQL。

升级时值得检查的几个点

DBeaver 26.1.2 的变化对多数开发者和 DBA 都是渐进式增强,升级风险通常来自插件、驱动、连接配置和团队使用习惯,而不是功能本身。落地时可以检查这几件事:

  • 如果启用 AI 助手,确认团队对数据外发、提示词内容和生产库访问有明确规则;
  • 对生产连接使用只读账号,避免 AI 生成的修改语句被误执行;
  • 升级后验证常用数据库驱动、SSH 隧道、SSL 配置和保存的连接;
  • 让高频使用 Data Editor 的同事试一下新的 Find/Replace 和快速筛选,确认操作习惯是否需要调整;
  • 对关键查询继续保留 SQL 文件或版本记录,不要只依赖聊天历史。

这版更新的方向很明确:让数据库工具更贴近“边问、边查、边验证”的工作流。AI Chat 负责降低 SQL 起草和解释成本,Data Editor 的查找筛选负责减少结果集里的机械定位。用得稳的前提也同样明确:AI 给建议,人做审查;界面帮排查,SQL 留证据。


相关推荐