

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

# 讀取資料表資料時，關聯式 (SQL) 資料庫與 DynamoDB 的主要差異
<a name="SQLtoNoSQL.ReadData"></a>

使用 SQL，您可用 `SELECT` 陳述式從資料表擷取一或多個資料列。並可用 `WHERE` 子句決定傳回給您的資料。

這與使用 Amazon DynamoDB 不同，其提供下列操作來讀取資料：
+ `ExecuteStatement` 會從資料表檢索單一或多個項目。`BatchExecuteStatement` 以單一操作從不同資料表檢索多個項目。這些操作都使用 [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html)，這是一種與 SQL 相容的查詢語言。
+ `GetItem`：從資料表擷取單一項目。因為可供直接存取項目的實體位置，所以此為讀取單一項目最有效率的方式。(DynamoDB 還會提供 `BatchGetItem` 操作，允許您在單一操作中執行多達 100 個 `GetItem` 呼叫。)
+ `Query`：擷取具有特定分割區索引鍵的所有項目。在那些項目中，您可以將條件套用至排序索引鍵，並只擷取部分資料。`Query` 供您快速且有效率地存取存放資料的分割區。(如需詳細資訊，請參閱 [DynamoDB 的分割區與資料分配](HowItWorks.Partitions.md)。)
+ `Scan`：擷取指定資料表中的所有項目。(此操作不應用於大型資料表，因為會使用大量系統資源)。

**注意**  
使用關聯式資料庫，您可用 `SELECT` 陳述式聯結多個資料表的資料，然後傳回結果。聯結是關聯式模型的基礎。若要確保聯結可有效率地執行，資料庫及其應用程式應持續調整其效能。DynamoDB 是不支援資料表聯結的非關聯式 NoSQL 資料庫。相反地，應用程式會一次從一個資料表讀取資料。

下列章節說明讀取資料的不同使用案例，以及如何使用關聯式資料庫和 DynamoDB 執行這些任務。

**Topics**
+ [使用主索引鍵讀取項目的差異](SQLtoNoSQL.ReadData.SingleItem.md)
+ [查詢資料表的差異](SQLtoNoSQL.ReadData.Query.md)
+ [掃描資料表的差異](SQLtoNoSQL.ReadData.Scan.md)