# 数据查询

**数据查询**是 Tables 内置的 SQL 编辑和结果查看界面。可以浏览数据库和表结构、执行单条查询、以表格或图表查看结果。

## 界面概览

进入 Tables 部署后，点击左侧菜单中的**数据查询**。页面包含以下区域：

1. **数据表面板**：选择数据库，查看表、字段和字段类型。
2. **查询编辑器**：编写和编辑 SQL。
3. **工具栏**：执行查询、上传查询文件和查看查询历史。
4. **结果区域**：查看查询结果并切换展示方式。

![数据查询界面概览](./_assets/data_explorer_overview.png)

## 数据表面板

展开并选择目标数据库后，可以查看其中的表、字段和字段类型；该数据库也会作为后续查询的目标数据库。创建表后如果列表没有更新，可刷新数据表列表。

通过表或字段旁的菜单，可以复制名称或生成快速查询。生成 SQL 后，请确认表名、筛选范围和返回行数，再执行查询。

点击数据表面板旁的折叠或展开图标，可以调整编辑器和结果区域的可用空间。

![数据表面板](./_assets/tables_panel_control.png)

## 查询编辑器

### 支持的查询类型

EMQX Tables 支持 SQL 查询，不提供 PromQL 选择入口。SQL 的示例和语法说明参见[使用 SQL 查询数据](./emqx_tables_query_sql.md)。

### 执行查询

1. 展开并选择目标数据库。
2. 在编辑器中输入一条 SQL，例如：

   ```sql
   SELECT * FROM machine_metrics ORDER BY ts DESC LIMIT 100;
   ```

3. 点击**执行查询**。
4. 查看结果；如果执行失败，根据错误信息检查数据库、表名、字段和权限。

每次请求只能执行一条 SQL。如果编辑器中包含多条语句，请将光标置于要执行的语句内，或仅选中一条完整语句，再点击**执行查询**。不要同时选择多条语句；**数据查询**页面不提供**运行全部**和**查看执行计划**。

## 查看查询结果

每次成功查询都会产生结果页签，可以切换或关闭页签。离开部署页面后，结果不会作为持久化数据保留。

- **表格视图**：分页查看字段和值，适合核对原始记录。
- **图表视图**：当查询结果包含可用于绘图的字段时，可以选择图表类型、X 轴、Y 轴和分组字段，观察数据趋势。

包含时间字段时，可以切换支持的显示格式。显示格式只影响界面呈现，无法解析的值保留原始内容。

![以表格查看查询结果](./_assets/query_result_table.png)

![以图表查看查询结果](./_assets/query_result_chart.png)

## 查看查询历史

查询历史存储在本地浏览器中，按部署分别记录。SQL 历史最多保留 100 条，保留期为 30 天，超过数量限制时移除最早记录。

历史记录不是服务端审计日志。更换浏览器或清理本地数据后，不应依赖这些记录恢复查询脚本。

点击工具栏中的历史图标，打开**查询历史**面板。可以搜索记录、查看查询文本，并将历史语句插入编辑器。

点击下载图标，可以将当前搜索结果中的查询历史下载为 `.sql` 文件。

![SQL 查询历史](./_assets/query_history_panel.png)

## 上传查询文件

使用工具栏中的上传功能选择 `.sql` 或 `.txt` 文件。文件内容会替换编辑器中的内容，请先保存尚未保留的 SQL。

![上传查询文件](./_assets/upload_query_file.png)

上传查询文件只是将 SQL 放入编辑器，不是导入业务数据，也不会自动执行文件中的全部语句。
