# SQL 处理

在 MatrixOne 中执行 SQL 查询或修改数据，返回查询结果或影响行数。

适用于筛选、聚合和数据加工。只需要选择一张表读取时，可使用[读取 MOI 表](../data-io/read-table.md)。

## 配置 SQL

SQL 为必填非空文本。可以选择 Catalog 数据表 `table_ref`，在语句中使用 `${source_table}` 引用该表。

```sql
SELECT * FROM ${source_table} LIMIT 100
```

上例展示如何引用所选数据表。节点会将占位符替换为所选表的完整名称。使用该占位符时必须绑定数据表，否则节点失败。

引用所选表时保留 `${source_table}` 写法；双大括号用于工作流变量，使用方式见[变量与数据传递](../../variables-and-data.md)。

## 使用输出

查询语句的 `rows` 是按列名组织的对象数组。数据变更语句在后端提供时返回 `affected_rows`。`sql` 是实际执行语句，`elapsed_ms` 表示耗时。

绑定数据表后，输出还包含表引用、数据库、表名和展开后的 `source_table`。通过 `truncated` 检查查询结果是否被截断。

执行写入、更新或删除语句会改变数据库内容。运行前确认目标表和筛选条件。

## 示例：保存查询样本

流程示意：SQL 处理 → 存至 MOI 卷。

选择源表，使用上面的查询语句，将 `rows` 和匹配的列名保存为 CSV。

## 继续阅读

- [变量与数据传递](../../variables-and-data.md)
- [运行与调试](../../run-debug.md)
