查詢資料表的差異 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

查詢資料表的差異

資料庫常見的另一種存取模式是根據您的查詢條件,從資料表讀取多個項目。

使用 查詢資料表 SQL

使用SELECT陳述SQL式時,您可以查詢金鑰欄、非金鑰欄或任何組合。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 作為表達式參數 (例如 KeyConditionExpressionFilterExpression) 中的預留位置。這與在關聯式資料庫中使用繫結變數類似,您會在執行時間將實際值代入 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 相關聯的歌曲。

如需使用 SelectExecuteStatement 的程式碼範例,請參閱 適用於 DynamoDB 的 PartiQL Select 陳述式