功能与 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 CE | Navicat | TablePlus | DataGrip |
|---|---|---|---|---|
| SQL 编辑器(补全/格式化/执行计划) | ✅ 强 | ✅ 强 | ✅ 中 | ✅ 强(重构) |
| ER 图(逆向) | ✅ | ✅(含正向) | 弱 | ✅ |
| 数据生成器 | ✅ | ✅(Premium) | 基础 | 基础 |
| 数据传输/同步 | 基础 | 强 | 基础 | 基础 |
| 跨平台 | Win/Mac/Linux | Win/Mac/Linux | Win/Mac/Linux | Win/Mac/Linux |
| 原生体验 | 否(Eclipse) | 否(自绘) | 是(原生) | 否(IntelliJ) |
| 启动速度/内存 | 慢/重 | 中/重 | 快/轻 | 慢/重 |
下一步
功能与 ER 图讲完后,建议回到参考速查 CE/PRO 功能矩阵、80+ 数据库清单、与 Navicat/TablePlus/DataGrip 对比、易错点清单。