Skip to content

功能与 ER 图:SQL 编辑器、数据生成器与跨平台

基于 DBeaver 24.x · 核于 2026-08

速查

  • SQL 编辑器(SQL Editor):功能完善的 SQL IDE——语法高亮(按数据库方言着色)、智能补全(表/列/函数/关键字)、SQL 格式化(统一缩进大小写)、错误检查、多标签、运行选中/全部、参数化查询(用 :param${var})、查询历史、执行计划可视化(EXPLAIN 树形/图形展示分析性能)。
  • ER 图(Entity-Relationship Diagram)逆向工程——连已有库自动生成 ER 图,表为实体、外键为关系线。支持大库自动布局、手动拖动调整、导出 PNG/SVG。DBeaver 的 ER 图是「只读分析」为主(不像 Navicat 的正向工程那么强),适合理解库结构与文档化。
  • 数据生成器(Data Generator):按字段类型生成随机测试数据——姓名、邮箱、电话、地址、日期、数字、布尔、JSON、UUID、Lorem 文本。支持自定义规则(数字范围、字符串格式)、引用外键关联(生成符合约束的值)。用于填充测试库、性能压测、功能验证。
  • 数据编辑器(Data Editor):网格视图查看编辑表数据——过滤、排序、分页、列宽、BLOB(图片/文件)预览、外键关联跳转、表单视图(一行一页)。编辑后生成 UPDATE/INSERT/DELETE 可预览。
  • 元数据浏览(Metadata Browser):按「连接 → 数据库 → catalog/schema → 表 → 列」树形浏览。查看表结构(字段/类型/注释)、索引、约束、外键、视图、存储过程、触发器、函数。看 DDL(建表语句)。
  • 数据传输与导出:把查询结果或表数据导出为 CSV/JSON/SQL/HTML/XML/Markdown(PRO 加 Excel/Word 带格式)。跨库数据迁移(JDBC 关系库之间,同/跨类型)。
  • 跨平台(Eclipse RCP):基于 Eclipse Rich Client Platform,同一份 Java 代码跑 Windows/macOS/Linux。OSGi 插件架构,功能以插件扩展。新版(24.x)自带打包 JRE,开箱即用,无需单独装 Java。代价是启动较慢、内存占用大(动辄几百 MB)。
  • 连接管理:多连接、虚拟分组、颜色标记、SSH 隧道(CE 基础)、SSL、连接导入导出。

一、SQL 编辑器详解

DBeaver 的 SQL 编辑器是日常写查询的核心:

SQL 编辑器(编辑器 + 结果 + 执行计划 三栏)
┌──────────────────────────────────────────┐
│ -- 查询最近 7 天注册的用户                 │  ← 高亮、补全
│ SELECT id, email, created_at              │
│ FROM users                                │
│ WHERE created_at > :since                 │  ← 参数化查询
│ ORDER BY created_at DESC;                 │
├──────────────────────────────────────────┤
│ [结果] [执行计划] [日志]                   │
│ ─── 结果网格 ───                          │
│ id    email          created_at           │
│ 1     a@x.com       2026-08-05            │
└──────────────────────────────────────────┘

核心能力

  • 语法高亮:按所选数据库方言着色关键字、函数、字符串、注释。
  • 智能补全:输入时弹出补全——表名、列名(按 schema 缓存)、函数、关键字、别名。SELECT * FROM u 补全以 u 开头的表或别名 u 的列。
  • SQL 格式化:一键统一缩进、关键字大小写、换行风格。可配置格式化规则(团队统一)。
  • 错误检查:实时语法检查,错误处标红波浪线。
  • 参数化查询:用 :param(命名参数)或 ${var}(变量)写带参数的 SQL,运行时弹窗填值——便于复用与防 SQL 注入。
  • 执行计划可视化:EXPLAIN 结果以树形/图形展示(各步骤的 cost、rows、扫描方式),分析查询性能瓶颈。
  • 查询历史:自动保存执行过的 SQL,可搜索复用。
  • 多标签:同时开多个 SQL 标签页,对比运行。

二、ER 图:逆向工程

DBeaver 的 ER 图主要做逆向工程——从已有库生成关系图:

逆向工程:
  选 schema/表 → 右键「生成 ER 图」
    → DBeaver 读取元数据(表、字段、外键)
    → 自动布局:表为实体框(含字段列表),外键为关系线
    → 可手动拖动调整位置、折叠字段、改颜色

用途:
  ① 接手陌生库,快速理解表结构与关系
  ② 文档化数据库设计(导出 PNG/SVG)
  ③ 沟通讨论(视觉化比 DDL 直观)
  • 自动识别外键:DBeaver 读外键约束,自动画关系线。应用层维护的隐式关系(无约束)要手动补。
  • 大库布局:表多时自动布局避免重叠,可手动拖动。
  • 导出:PNG/SVG 矢量图,作为文档。
  • 与 Navicat ER 对比:DBeaver 的 ER 偏「只读分析」(逆向看结构),Navicat 的 ER 还支持正向工程(画图生成 DDL 建库)——DBeaver 正向能力弱。

三、数据生成器:填充测试数据

开发测试需要大量假数据,DBeaver 的数据生成器按规则自动填充:

生成器配置(填充 users 表):
  字段        生成规则
  ─────────────────────────────
  id         序列(1, 2, 3, ...)
  email      随机邮箱({name}@{domain}.com)
  age        随机整数(18-65)
  created_at 随机日期(2020-01-01 至今)
  is_active  随机布尔(70% true)
  metadata   随机 JSON
  country_id 外键引用(从 countries 表的 id 取)

执行 → 生成 10000 行测试数据
  • 按类型生成:姓名、邮箱、电话、地址、日期、数字、布尔、JSON、UUID、Lorem 文本。
  • 自定义规则:限定范围(数字 1-100)、格式(邮箱 @x.com)、正则、脚本。
  • 外键引用:生成符合外键约束的值(从关联表取已存在的 id)。
  • 批量:一次生成百万行,用于性能压测。
  • 用途:①填充空测试库;②性能测试(百万行查慢查询);③功能验证(边界数据)。

四、数据编辑器与元数据浏览

数据编辑器

  • 网格视图:表数据行列显示,过滤(自定义条件)、排序(点列头)、分页、列宽拖拽。
  • 编辑:双击单元格编辑,回车提交。生成 UPDATE/INSERT/DELETE,可预览再提交。
  • BLOB:图片字段预览缩略图,文件字段上传下载。
  • 外键跳转:点外键值右键「打开关联表」,跳到对应行。
  • 表单视图:一行一页详细查看编辑,适合字段多的表。

元数据浏览

连接树(左侧导航):
  📁 MySQL 连接
    📁 mydb 数据库
      📁 表
        📊 users
          📋 字段(id, email, created_at, ...)
          🔑 索引(PRIMARY, idx_email)
          🔗 外键(orders.user_id → users.id)
          ⚙️ 触发器
      📁 视图
      📁 存储过程
      📁 函数
  • 树形浏览:按 catalog/schema/表/对象层级展开。
  • DDL 查看:右键表「生成 DDL」,看建表语句(CREATE TABLE/INDEX/约束)。
  • 对象详情:点对象看属性(字段类型、索引定义、外键关系、触发器逻辑)。
  • 搜索:跨 schema 搜索表名/列名。

五、数据传输与导出

导出

把查询结果或整表数据导出为多种格式:

格式用途版本
CSV通用纯数据,Excel 可开CE
JSON结构化,API/NoSQL 友好CE
SQL含 INSERT,可还原CE
HTML网页表格展示CE
XML结构化(旧系统)CE
Markdown文档表格CE
Excel(.xlsx)带格式(列宽/样式)PRO
Word(.docx)报告文档PRO

数据传输(跨库迁移)

  • 在 JDBC 关系库之间迁移数据(MySQL→PG、Oracle→MySQL 等)。
  • 选源表/查询、目标库、字段映射、目标存在时处理(跳过/覆盖/追加)。
  • 大数据量分批、并行。
  • 注意:DBeaver 的数据传输是基础工具,深度同步(结构对比生成 ALTER、按主键增量)不如 Navicat 成熟。

六、跨平台与 Eclipse RCP

DBeaver 基于 Eclipse RCP(Rich Client Platform)

  • Eclipse RCP 是什么:Eclipse IDE 的底层框架(OSGi 插件系统 + SWT/JFace UI 工具包),可用于构建独立桌面应用。DBeaver 用它构建数据库客户端。
  • 跨平台:SWT 用各平台原生控件(Win 的 Win32、Mac 的 Cocoa、Linux 的 GTK),所以 DBeaver 在每个平台有原生外观,同一份 Java 代码跑三平台。
  • 插件架构:OSGi 让功能以插件扩展(如「MySQL 支持」是一个插件,「MongoDB 支持」是另一个)。社区可开发插件。
  • JRE 依赖:早期要用户装 JDK/JRE,新版(24.x)自带打包 JRE,下载即用。
  • 代价
    • 启动慢:Eclipse 框架重,启动比原生应用慢几秒。
    • 内存大:Java + Eclipse 占内存大(动辄几百 MB 到 1GB),比 TablePlus(原生轻量)重。
    • UI 风格:Eclipse 的树形/标签/菜单风格不如现代原生应用精致——这是它的主要批评点。

为什么选 Eclipse RCP

  • 跨平台省力:一份代码三平台,省开发成本。
  • 插件生态:复用 Eclipse 插件体系,扩展性强。
  • 历史选择:DBeaver 2010 年起步时 Eclipse RCP 是成熟的 Java 桌面框架,自然选择。代价(重、UI 陈旧)是后续才显现的。

七、与竞品的功能对比

功能DBeaver CENavicatTablePlusDataGrip
SQL 编辑器(补全/格式化/执行计划)✅ 强✅ 强✅ 中✅ 强(重构)
ER 图(逆向)✅(含正向)
数据生成器✅(Premium)基础基础
数据传输/同步基础基础基础
跨平台Win/Mac/LinuxWin/Mac/LinuxWin/Mac/LinuxWin/Mac/Linux
原生体验否(Eclipse)否(自绘)是(原生)否(IntelliJ)
启动速度/内存慢/重中/重快/轻慢/重

下一步

功能与 ER 图讲完后,建议回到参考速查 CE/PRO 功能矩阵、80+ 数据库清单、与 Navicat/TablePlus/DataGrip 对比、易错点清单。