查询表方面的差异
另一个常见访问模式是根据您的查询条件从表中读取多个项目。
使用 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;
请注意,此表的主键包含 Artist 和 SongTitle。
在 DynamoDB 中查询表
在 Amazon DynamoDB 中,您可以使用 DynamoDB API 或 PartiQL(一种与 SQL 兼容的查询语言)查询表中的项目。
- DynamoDB API
-
通过 Amazon DynamoDB,您可以使用 Query
操作以类似方式检索数据。Query
操作提供对存储数据的物理位置的快速高效访问。有关更多信息,请参阅 DynamoDB 中的分区和数据分布。
您可以将 Query
与任何表或二级索引一起使用。您必须为分区键的值指定相等条件,并且可以有选择性地为排序键属性(如果已定义)提供另一个条件。
KeyConditionExpression
参数指定要查询的键值。可使用可选 FilterExpression
在结果中的某些项目返回给您之前删除这些项目。
在 DynamoDB 中,您必须使用 ExpressionAttributeValues
作为表达式参数(如 KeyConditionExpression
和 FilterExpression
)中的占位符。这类似于在关系数据库中使用绑定变量,其中,您在运行时将实际值代入 SELECT
语句。
请注意,此表的主键包含 Artist 和 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"
}
}
- PartiQL for DynamoDB
-
通过 PartiQL,您可以对分区键使用 ExecuteStatement
操作和 Select
语句执行查询。
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know'
通过此方式使用 SELECT
语句将返回与此特定 Artist
关联的所有歌曲。
有关使用 Select
和 ExecuteStatement
的代码示例,请参阅 PartiQL for DynamoDB 的 Select 语句。