本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
查詢資料表的差異
資料庫常見的另一種存取模式是根據您的查詢條件,從資料表讀取多個項目。
使用 查詢資料表 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
作為表達式參數 (例如 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
的程式碼範例,請參閱 適用於 DynamoDB 的 PartiQL Select 陳述式。