dbx/docs/content/docs/data-grid.cn.mdx

167 lines
7.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 数据表格
description: 在 DBX 中浏览、筛选、编辑、预览 SQL 并导出表数据。
---
数据表格用于查看查询结果或表数据。它适合处理两类场景:快速浏览数据,以及在确认 SQL 后进行小范围数据修改。
## 浏览数据
DBX 使用虚拟滚动渲染表格,只渲染当前可视区域内的行。大表浏览时,滚动和选择操作不会因为一次性渲染所有行而明显变慢。
常用浏览操作:
- 拖拽列边缘调整列宽
- 双击列边缘根据内容自适应列宽
- 点击列头排序
- 使用行号定位数据
- 打开单元格详情查看长文本、JSON 或其他复杂值
## 过滤与排序
| 功能 | 适合场景 |
| -------- | ---------------------------------------- |
| 搜索 | 在当前结果中快速定位包含关键字的行 |
| WHERE | 在数据库层面筛选数据,适合大表和精确条件 |
| ORDER BY | 在数据库层面排序,适合稳定复现查询结果 |
<Callout type="info">大表场景优先使用 `WHERE` 和 `ORDER BY`。它们在数据库层面执行,通常比客户端搜索更稳定。</Callout>
## 行内编辑
可以直接在表格里修改数据:
- **修改单元格**:双击单元格进入编辑状态
- **新增行**:在表格中添加一行待插入记录
- **删除行**:选中行后标记为待删除
- **设置 NULL**:在单元格详情面板中明确写入 `NULL`
所有修改都会先暂存在本地。保存前DBX 会展示即将执行的 SQL。
## 什么时候可以编辑
当 DBX 能识别目标表,并且有足够的键信息生成可审查的 `UPDATE`、`INSERT` 或 `DELETE` 语句时,结果才可编辑。直接打开表数据通常可以编辑;临时 join、聚合、表达式或没有可用主键/行标识的结果会视为只读。
| 结果类型 | 通常行为 |
| -------------------------- | ------------------------------------ |
| 打开的表数据 | 数据库和表支持时可编辑 |
| 简单 `SELECT * FROM table` | 有主键或行标识时通常可编辑 |
| Join、聚合、计算列 | 只读结果 |
| Redis 或 MongoDB 视图 | 使用对应专用编辑器,不走关系型行 SQL |
## SQL 预览
<Callout type="warn">数据修改不会在编辑后立即写入数据库。点击保存前,请先检查 SQL 预览,尤其是在生产环境连接上。</Callout>
SQL 预览会展示 `UPDATE`、`INSERT` 或 `DELETE` 语句。这个步骤可以帮助你确认:
- 更新条件是否正确
- 新增行的字段是否完整
- 删除操作是否命中预期行
- `NULL`、空字符串和默认值是否符合预期
如果预览 SQL 的影响范围过大,请取消保存,先缩小筛选条件或选择范围。
## 单元格详情
点击单元格可以打开详情面板。它适合处理表格内不方便直接编辑的值:
- 长文本
- JSON
- SQL 片段
- 多行内容
- 需要显式设置为 `NULL` 的字段
## 转置视图
切换转置视图可互换行和列。适用场景:
- 表有很多列但行数较少
- 需要并排比较列的元数据(类型、默认值、可空标志)
- 查看具有宽列的单个行
转置视图保留所有表格功能:排序、过滤、编辑和导出均可正常使用。
## 列格式化器
自定义列格式化器让你控制特定列值的显示方式:
- **日期时间格式化**:为日期和时间列选择显示格式
- **JSON 路径提取**:使用 JSONPath 表达式从 JSON/JSONB 列中提取特定字段
- **值掩码**:隐藏或部分掩码敏感值
- **自定义模板**:为列定义自己的显示模板
从列头菜单配置格式化器。格式化器仅影响显示——不会更改底层数据。
## 单元格详情编辑器
单元格详情面板为单个单元格值提供完整的编辑器:
- **值编辑器**在更大的文本区域中编辑单元格内容JSON 和 SQL 具有语法高亮
- **设置 NULL**:将单元格显式设置为 NULL
- **图片预览**:当单元格包含图片 URL 时,详情面板会显示渲染后的预览
- **时间编辑器**:日期和时间单元格使用专用的日期/时间选择器
## 多行操作
选中多行执行批量操作:
- **批量克隆**:一次性复制多行
- **批量删除**:一次性标记多行为待删除
- **批量复制**:以 TSV、CSV、JSON、Markdown 或 INSERT 语句格式复制多行
- **复制为 INSERT**:生成包含多行值的单条 `INSERT` 语句
- **复制为 UPDATE**:为选中的行生成 `UPDATE` 语句
- **复制不含主键**:生成排除自增主键的 INSERT 语句
## 列头控件
列头提供快速操作入口:
- **排序**:点击切换升序、降序或清除排序。右键点击可打开排序上下文菜单。
- **列可见性**:从可搜索的清单中显示或隐藏列
- **本地列过滤**:通过勾选特定值在当前结果集中过滤
- **紧凑模式**:在设置中启用后,列头操作(排序、格式化、过滤)收起为单个下拉菜单,给列名留出更多空间
- **紧凑过滤构建器**:在紧凑 UI 中使用多个条件构建复杂的客户端过滤
- **拖放列重排序**:点击并拖动列头即可重新排序。列顺序按表/查询保存,跨会话持久化
## 单元格详情编辑器
单元格详情面板为单个单元格值提供完整的编辑器:
- **值编辑器**在更大的文本区域中编辑单元格内容JSON 和 SQL 具有语法高亮
- **设置 NULL**:将单元格显式设置为 NULL
- **图片预览**:当单元格包含图片 URL 时,详情面板会显示渲染后的预览
- **时间编辑器**:日期和时间单元格使用专用的日期/时间选择器
- **二进制数据十六进制查看器**:以十六进制格式查看二进制数据,同时显示十六进制和 ASCII 表示,便于检查原始二进制内容
## 导出与复制
| 格式 | 用途 |
| -------- | ------------------------------------------------------ |
| CSV | 给 Excel、Numbers 或其他表格工具使用 |
| JSON | 给脚本、接口调试或程序处理使用 |
| Markdown | 粘贴到 Issue、PR、文档或聊天中 |
| INSERT | 将选中行复制为可执行的 `INSERT` 语句(支持单行或批量) |
| UPDATE | 将选中行复制为可执行的 `UPDATE` 语句 |
| XLSX | 从表格上下文菜单直接导出为 Excel 格式 |
### 复制带表头
DBX 支持在复制数据时包含列头:
- **复制列名**:只复制当前选择的列名
- **复制选择区域与表头**:复制选中的单元格及其列头
- **复制为带表头的 TSV/CSV**:在制表符分隔或逗号分隔输出中包含表头
这在将数据粘贴到电子表格、文档或分享查询结果时特别有用,可以保留列的上下文信息。
导出前建议先确认当前筛选和排序条件,避免导出范围和预期不一致。
## 分页与大结果集
DBX 会通过分页和虚拟滚动让大结果集保持响应。面对大表时,优先使用数据库侧的 `WHERE` 和 `ORDER BY`,不要只依赖客户端搜索;数据库可以利用索引,并返回更小的结果集。分页大小可配置并跨会话持久化。
### 行号显示
数据表格在最左侧列显示行号。在翻页浏览大结果集时,行号会反映当前页面位置,帮助你跟踪正在查看的记录。当应用排序或筛选时,行号会自动调整。