

# DynamoDB 的 PartiQL 数据类型
<a name="ql-reference.data-types"></a>

下表列出可用于 PartiQL for DynamoDB 的数据类型。


| DynamoDB 数据类型 | PartiQL 表示 | 备注 | 
| --- | --- | --- | 
| Boolean | TRUE \| FALSE | 不区分大小写。 | 
| Binary | 不适用 | 仅通过代码支持。 | 
| List | [ value1, value2,...] | List 类型中可以存储的数据类型没有限制，List 中的元素也不一定为相同类型。 | 
| Map | { 'name' : value } | Map 类型中可以存储的数据类型没有限制，Map 中的元素也不一定为相同类型。 | 
| Null | NULL | 不区分大小写。 | 
| Number | 1, 1.0, 1e0  | 数字可为正数、负数或零。数字最多可精确到 38 位。 | 
| Number Set | <<number1, number2>> | 数字集中的元素必须为 Number 类型。 | 
| String Set | <<'string1', 'string2'>> | 字符串集中的元素必须为 String 类型。 | 
| String | 'string value' | 必须使用单引号来指定 String 值。 | 

## 示例
<a name="ql-reference.data-types"></a>

以下语句演示如何插入以下数据类型：`String`、`Number`、`Map`、`List`、`Number Set` 和 `String Set`。

```
INSERT INTO TypesTable value {'primarykey':'1', 
'NumberType':1,
'MapType' : {'entryname1': 'value', 'entryname2': 4}, 
'ListType': [1,'stringval'], 
'NumberSetType':<<1,34,32,4.5>>, 
'StringSetType':<<'stringval','stringval2'>>
}
```

以下语句演示了如何将新元素插入到 `Map`、`List`、`Number Set` 和 `String Set`类型并更改 `Number` 类型的值。

```
UPDATE TypesTable 
SET NumberType=NumberType + 100 
SET MapType.NewMapEntry=[2020, 'stringvalue', 2.4]
SET ListType = LIST_APPEND(ListType, [4, <<'string1', 'string2'>>])
SET NumberSetType= SET_ADD(NumberSetType, <<345, 48.4>>)
SET StringSetType = SET_ADD(StringSetType, <<'stringsetvalue1', 'stringsetvalue2'>>)
WHERE primarykey='1'
```

以下语句演示如何从 `Map`、`List`、`Number Set` 和 `String Set` 类型移除元素，并更改 `Number` 类型的值。

```
UPDATE TypesTable 
SET NumberType=NumberType - 1
REMOVE ListType[1]
REMOVE MapType.NewMapEntry
SET NumberSetType = SET_DELETE( NumberSetType, <<345>>)
SET StringSetType = SET_DELETE( StringSetType, <<'stringsetvalue1'>>)
WHERE primarykey='1'
```

有关更多信息，请参阅 [DynamoDB 数据类型](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)。