

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建、编辑或删除数据操作
<a name="data-entities-edit-data-actions"></a>

应用程序中使用数据操作对实体的数据执行操作，例如获取所有记录或按 ID 获取记录。数据操作可用于查找和返回与指定条件相匹配的数据，以便在表格或详细视图等组件中查看。

**Contents**
+ [创建数据操作](#data-entities-data-action-add)
+ [编辑或配置数据操作](#data-entities-data-action-edit)
+ [数据操作条件运算符和示例](#data-entities-data-action-operators)
  + [数据库支持条件运算符](#data-entities-data-action-operators-support)
  + [数据操作条件示例](#data-entities-data-action-operators-examples)
+ [删除数据操作](#data-entities-data-action-delete)

## 创建数据操作
<a name="data-entities-data-action-add"></a>

**提示**  
您可以按 CTRL\+Z 撤消最近对实体所做的更改。

1. 如有必要，请导航到要为其创建数据操作的实体。

1. 选择 “**数据操作**” 选项卡。

1. 创建数据操作的方法有两种：
   + （推荐）要使用 AI 根据您的实体名称、字段和连接的数据源为您生成数据操作，请选择**生成数据操作**。将生成以下操作：

     1. `getAll`：检索实体的所有记录。当您需要显示记录列表或同时对多条记录执行操作时，此操作非常有用。

     1. `getByID`：根据实体的唯一标识符（ID 或主键）从其检索单个记录。当您需要显示或对特定记录执行操作时，此操作非常有用。
   + 要添加单个数据操作，请选择 **\+ 添加数据操作**。

1. 要查看或配置新的数据操作，请参阅以下部分[编辑或配置数据操作](#data-entities-data-action-edit)。

## 编辑或配置数据操作
<a name="data-entities-data-action-edit"></a>

1. 如有必要，请导航到要为其创建数据操作的实体。

1. 选择 “**数据操作**” 选项卡。

1. 在**字段**中，配置查询要返回的字段。默认情况下，实体中所有已配置的字段都处于选中状态。

   您也可以通过执行以下步骤将**联接**添加到数据操作中：

   1. 选择 **\+ 添加加入**以打开一个对话框。

   1. 在**相关实体**中，选择要与当前实体联接的实体。

   1. 在**别名**中，可以选择输入相关实体的临时别名。

   1. 在**联接类型**中，选择所需的联接类型。

   1. 通过从每个实体中选择字段来定义联接子句。

   1. 选择 “**添加**” 以创建联接。

   创建后，联接将显示在 “**联接**” 部分，从而在 “**要返回的字段” 下拉列表中提供其他字段**。您可以添加多个联接，包括跨实体的链式联接。您还可以按联接实体中的字段进行筛选和排序。

   要删除联接，请选择其旁边的垃圾桶图标。这将从该联接中移除所有字段，并使用这些字段打破任何相关联接或约束。

1. 在**条件**中，添加、编辑或删除筛选查询输出的规则。您可以将规则组织成组，也可以使用`AND`或`OR`语句将多个规则链接在一起。有关您可以使用的运算符的更多信息，请参阅[数据操作条件运算符和示例](#data-entities-data-action-operators)。

1. 在**排序**中，通过选择属性并选择升序或降序来配置查询结果的排序方式。您可以通过选择排序规则旁边的垃圾桶图标来删除排序配置。

1. 在**转换结果**中，您可以输入 custom JavaScript 来修改或格式化结果，然后再显示结果或将其发送到自动化。

1. 在**输出预览**中，根据配置的字段、筛选器、排序和查看查询输出的预览表 JavaScript。

## 数据操作条件运算符和示例
<a name="data-entities-data-action-operators"></a>

您可以使用条件运算符将配置的表达式值与实体列进行比较，以返回数据库对象的子集。您可以使用的运算符取决于列的数据类型以及实体所连接的数据库的类型，例如 Amazon Redshift、Amazon Aurora 或 Amazon DynamoDB。

以下条件运算符可用于所有数据库服务：
+ `=`和`!=`：适用于所有数据类型（不包括主键列）。
+ `<=`、`>=``<`、和`>=`：仅适用于数字列。
+ `IS NULL`an `IS NOT NULL` d：用于匹配具有空值或空值的列。在每个数据库中，空值的解释通常有所不同，但是在 App Studio 中，`NULL`运算符匹配并返回连接的数据库表中包含空值的记录。

以下条件运算符只能在连接到支持它们的数据库服务的实体中使用：
+ `LIKE`和`NOT LIKE`（Redshift，Aurora）：用于在连接的数据库中执行基于模式的查询。该`LIKE`运算符为搜索功能提供了灵活性，因为它可以查找并返回符合指定模式的记录。您可以使用与模式中的任何字符或字符序列相匹配的通配符来定义模式。每个数据库管理系统都有一组唯一的通配符，但最常用的两个通配符是`%`表示任意数量的字符（包括 0），以及`_`表示单个字符。
+ `Contains`和 `Not Contains` (DynamoDB)：用于执行区分大小写的搜索以确定是否在列值中找到给定文本。
+ `Starts With`和 `Not Starts With` (DynamoDB)：用于执行区分大小写的搜索，以确定是否在列值的开头找到给定文本。

### 数据库支持条件运算符
<a name="data-entities-data-action-operators-support"></a>

下表显示了每个可以连接到 App Studio 的数据库支持哪些数据操作条件运算符。


|  | =, \!=, <, >, <=, >= | 喜欢，不喜欢 | 包含，不包含 | 开头为，不开头 | 为空，不为空 | 
| --- | --- | --- | --- | --- | --- | 
| **DynamoDB** | 是 | 否 | 是 | 是 | 是 | 
| **Aurora** | 支持 | 是 | 否 | 否 | 是 | 
| **Redshift** | 支持 | 是 | 否 | 否 | 是 | 

### 数据操作条件示例
<a name="data-entities-data-action-operators-examples"></a>

考虑以下数据库表，其中包含多个带有`name``city`、和`hireDate`字段的项目。


| name | city | HireDate | 
| --- | --- | --- | 
| 亚当 | Seattle | 2025-03-01 | 
| 艾德丽安 | Boston | 2025-03-05 | 
| Bob | 阿尔伯克基 | 2025-03-06 | 
| Carlos | 芝加哥 | 2025-03-10 | 
| 卡罗琳 | NULL | 2025-03-12 | 
| 丽塔 | 迈阿密 | 2025-03-15 | 

现在，考虑在 App Studio 中创建数据操作，以返回符合指定条件的项目的`name`字段。以下列表包含条件示例以及该表为每个示例返回的值。

**注意**  
这些示例的格式为 SQL 示例，它们可能不像在 App Studio 中那样出现，但用于说明运算符的行为。
+ `WHERE name LIKE 'Adam'`: 退货`Adam`。
+ `WHERE name LIKE 'A%'`: 退货`Adam`和`Adrienne`.
+ `WHERE name NOT LIKE 'B_B'`: 返回`Adam``Adrienne`、`Carlos`、`Caroline`、和`Rita`。
+ `WHERE contains(name, 'ita')`: 退货`Rita`。
+ `WHERE begins_with(name, 'Car')`: 退货`Carlos`和`Caroline`.
+ `WHERE city IS NULL`: 退货`Caroline`。
+ `WHERE hireDate < "2025-03-06"`: 退货`Adam`和`Adrienne`.
+ `WHERE hireDate >= DateTime.now().toISODate()`: 请注意，`DateTime.now().toISODate()`返回当前日期。在当前日期为 2025-03-10 的场景中，表达式返回`Carlos`、和。`Caroline` `Rita`

**提示**  
有关比较表达式中的日期和时间的更多信息，请参阅[日期和时间](expressions.md#expressions-date-time)。

## 删除数据操作
<a name="data-entities-data-action-delete"></a>

使用以下步骤从 App Studio 实体中删除数据操作。

1. 如有必要，请导航到要删除其数据操作的实体。

1. 选择 “**数据操作**” 选项卡。

1. 对于要删除的每个数据操作，请选择 “**编辑**” 旁边的下拉菜单，然后选择 “**删除**”。

1. 在对话框中选择 “**确认**”。