查询表 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

查询表

另一个常见访问模式是根据您的查询条件从表中读取多个项目。

使用 SQL 查询表

使用 SQL 时,SELECT 语句可让您查询关键列、非关键列或任意组合。WHERE 子句确定返回的行,如以下示例所示。

/* Return a single song, by primary key */ SELECT * FROM Music WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today';
/* Return all of the songs by an artist */ SELECT * FROM Music WHERE Artist='No One You Know';
/* Return all of the songs by an artist, matching first part of title */ SELECT * FROM Music WHERE Artist='No One You Know' AND SongTitle LIKE 'Call%';
/* Return all of the songs by an artist, with a particular word in the title... ...but only if the price is less than 1.00 */ SELECT * FROM Music WHERE Artist='No One You Know' AND SongTitle LIKE '%Today%' AND Price < 1.00;

请注意,此表的主键由艺术家和组成SongTitle

在 DynamoDB 中查询表

在 Amazon DynamoDB 中,您可以使用 DynamoDB API 或 PartiQL(一种与 SQL 兼容的查询语言)查询表中的项目。

DynamoDB API

通过 Amazon DynamoDB,您可以使用 Query 操作以类似方式检索数据。Query 操作提供对存储数据的物理位置的快速高效访问。有关更多信息,请参阅分区和数据分布

您可以将 Query 与任何表或二级索引一起使用。您必须为分区键的值指定相等条件,并且可以有选择性地为排序键属性(如果已定义)提供另一个条件。

KeyConditionExpression 参数指定要查询的键值。可使用可选 FilterExpression 在结果中的某些项目返回给您之前删除这些项目。

在 DynamoDB 中,您必须使用 ExpressionAttributeValues 作为表达式参数(如 KeyConditionExpressionFilterExpression)中的占位符。这类似于在关系数据库中使用绑定变量,其中,您在运行时将实际值代入 SELECT 语句。

请注意,此表的主键由艺术家和组成SongTitle

以下是其他几个 DynamoDB Query 示例。

// Return a single song, by primary key { TableName: "Music", KeyConditionExpression: "Artist = :a and SongTitle = :t", ExpressionAttributeValues: { ":a": "No One You Know", ":t": "Call Me Today" } }
// Return all of the songs by an artist { TableName: "Music", KeyConditionExpression: "Artist = :a", ExpressionAttributeValues: { ":a": "No One You Know" } }
// Return all of the songs by an artist, matching first part of title { TableName: "Music", KeyConditionExpression: "Artist = :a and begins_with(SongTitle, :t)", ExpressionAttributeValues: { ":a": "No One You Know", ":t": "Call" } }
注意

有关使用 Query 的代码示例,请参阅 DynamoDB 和 Amazon SDK 入门

PartiQL for DynamoDB

通过 PartiQL,您可以对分区键使用 ExecuteStatement 操作和 Select 语句执行查询。

SELECT AlbumTitle, Year, Price FROM Music WHERE Artist='No One You Know'

通过此方式使用 SELECT 语句将返回与此特定 Artist 关联的所有歌曲。

有关使用 SelectExecuteStatement 的代码示例,请参阅 PartiQL for DynamoDB 的 Select 语句