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

查询表

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

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;

请注意,此表的主键包含 ArtistSongTitle

DynamoDB

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

DynamoDB API

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

可以将 Query 用于任何具有复合主键 (分区键和排序键) 的表。您必须指定分区键的相等条件,并且可以选择性为排序键提供另一个条件。

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

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

请注意,此表的主键包含 ArtistSongTitle

以下是其他几个 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 语句