查询编辑器
查询编辑器是 DBX 的 SQL 工作区。它把方言感知的高亮与补全、语义诊断、参数输入、执行进度、多结果、执行计划、查询历史、SQL 库和 AI 助手放在同一个标签页中。
基本工作流
选择连接上下文
新建查询时选择连接、数据库和 Schema。也可以从对象树、快速打开、SQL 库或 SQL 文件创建带上下文的查询标签。
编写并检查 SQL
使用补全、悬停信息、语义诊断、格式化和代码折叠理解 SQL。Ctrl/Cmd+Click 可以按设置跳转到表数据或对象位置。
明确执行范围
选中要执行的 SQL,或使用当前语句/全部内容。多语句时可以通过执行目标选择器确认范围。
查看结果或执行计划
结果区支持多个运行记录、横向标签或列表视图。需要分析性能时,使用执行计划入口读取树、摘要和标准表格。
保存和复用
把稳定查询保存到 SQL 库或外部 .sql 文件,并通过历史记录、快速打开或文件夹再次使用。
执行 SQL
| 操作 | macOS | Windows / Linux |
|---|---|---|
| 执行当前范围 | Cmd+Enter | Ctrl+Enter |
| 在新结果中执行 | Cmd+\ | Ctrl+\ |
| 停止执行 | 点击执行按钮变成的停止按钮 | 点击执行按钮变成的停止按钮 |
有选中文本时,DBX 优先执行选中内容;没有选中时,根据当前语句和执行目标设置决定范围。快捷键可以在 快捷键 中修改。
普通执行会更新当前激活结果。在新结果中执行适合保留旧结果进行对比。结果可以平铺为横向标签,也可以切换为列表;多次执行还会保留运行记录,并可以固定重要结果。
多语句执行时,结果区显示当前语句、总语句数、完成状态和错误。驱动支持时,可以取消当前查询或后续语句。
执行范围与目标选择器
| 范围 | 如何确定 | 适合场景 |
|---|---|---|
| 选中 SQL | 执行前高亮文本 | 多语句草稿中最明确、安全 |
| 当前语句 | 光标位于语句内 | 快速执行脚本中的一条语句 |
| 全部内容 | 没有选择且按设置执行整个编辑器 | 单用途短脚本 |
执行目标选择器会在需要时标出可执行语句并展示预览。可以在设置中启用或关闭,但生产和复杂脚本建议保留。
大型 .sql 文件、需要逐语句进度或文件级统计的任务,应使用 SQL 文件执行。
自动补全与语义诊断
补全会结合当前数据库方言和元数据提供:
- SQL 关键字、函数、类型和数据库专属语法
- 数据库、Schema、表、视图、字段和字段注释
- 表别名、CTE、子查询作用域和可见字段
- 基于外键或关系元数据的 JOIN 条件
- MySQL、PostgreSQL、SQL Server、ClickHouse 等方言的函数和语法建议
- 用户配置的 SQL 代码片段
语义诊断会标出部分无法解析的表、字段、别名和 SQL 结构。它用于提前发现问题,不代表数据库一定会拒绝或接受语句;厂商扩展语法仍以服务端结果为准。
表和对象导航
Ctrl/Cmd+Click表名可以按设置打开表数据或定位对象- 从光标位置可以在侧边栏定位当前引用的表
- 快速打开支持搜索连接、数据库、表、SQL 文件和 SQL 库
- 对象源码视图支持搜索,并可以把 SQL 打开到编辑器继续修改
导航依赖 SQL 解析和当前元数据。动态 SQL、同名对象或缺少 Schema 的引用可能需要手动确认目标。
SQL 参数与变量
执行前,DBX 可以识别常见占位符并打开参数输入对话框:
| 语法 | 示例 |
|---|---|
| 位置参数 | ? |
| 命名参数 | :user_id |
| Shell 风格 | ${user_id} |
| MyBatis 风格 | #{user_id} |
| SQL Server 风格 | @user_id |
| 脚本变量 | @set user_id = 42; |
参数可以按字符串、数字、布尔、NULL 或原始 SQL 值输入。每种数据库可以在设置中关闭会与原生语法冲突的占位符形式。
格式化、压缩与折叠
- 格式化 SQL统一缩进、换行和关键字风格
- 压缩 SQL移除不必要的空白,适合复制或排查生成 SQL
- 代码折叠收起长查询、子查询或过程块;折叠快捷键可以配置
- 格式化选项和变量语法见 SQL 格式化
格式化和压缩只修改编辑器文本,不会执行 SQL。
执行计划
执行计划入口只接受可安全分析的查询类 SQL,例如 SELECT、WITH、TABLE 或 VALUES。支持的数据库会返回:
- 标准结果表格
- 可展开的计划树
- 节点、成本、预估行数、表和索引摘要
- 数据库返回的原始详情
不同数据库的 EXPLAIN 语义不同,部分引擎只提供表格或文本结果。执行计划反映优化器估算,不等于真实生产性能;需要结合数据量、统计信息、索引和实际耗时判断。
查询历史
查询历史按连接保存已执行 SQL,并记录时间和相关上下文。可以:
- 按日期范围过滤
- 搜索并重新填入编辑器
- 区分普通执行和 AI 辅助来源
- 从历史 SQL 恢复或对比之前的排查过程
- 在字段血缘中把历史 SQL 作为可能引用关系
SQL 库与 SQL 文件
| 方式 | 适合场景 | 平台边界 |
|---|---|---|
| SQL 库 | 在 DBX 中按文件夹保存和搜索常用查询 | 桌面版支持完整本地 SQL 库管理;同步范围见云同步设置 |
| 外部 SQL 文件 | 与项目仓库、脚本目录或编辑器共享 .sql 文件 | 本地文件打开、保存和文件树属于桌面端能力 |
| 查询标签 | 临时分析和未完成草稿 | 可按设置恢复全部、仅固定标签或不恢复 |
保存 SQL 时可以搜索或创建文件夹。快速打开会同时索引 SQL 库和 SQL 文件。
安全与边界
- 只读连接会在核心执行路径拒绝可识别写入
- 生产环境保护会对写入逐次显示明确确认
- 危险 SQL 确认和 Redis 命令安全是额外保护层
USE或数据库切换会更新查询上下文,但仍应检查当前连接和目标数据库- 自动补全、语义诊断和执行计划都依赖当前驱动与元数据能力
完整规则见 生产环境与写入安全。