

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

# 從資料表刪除資料時，關聯式 (SQL) 資料庫與 DynamoDB 的差異
<a name="SQLtoNoSQL.DeleteData"></a>

在 SQL 中，`DELETE` 陳述式會從資料表中移除一或多個資料列。Amazon DynamoDB 會使用 `DeleteItem` 操作一次刪除一個項目。

**Topics**
+ [從 SQL 資料表刪除資料](#SQLtoNoSQL.DeleteData.SQL)
+ [從 DynamoDB 中的資料表刪除資料](#SQLtoNoSQL.DeleteData.DynamoDB)

## 從 SQL 資料表刪除資料
<a name="SQLtoNoSQL.DeleteData.SQL"></a>

在 SQL 中，您可使用 `DELETE` 陳述式刪除一或多個資料列。`WHERE` 子句則可決定您想要修改的資料列。下列是 範例。

```
DELETE FROM Music
WHERE Artist = 'The Acme Band' AND SongTitle = 'Look Out, World';
```

您可修改 `WHERE` 子句來刪除多個資料列。例如，您可以刪除特定演出者的所有歌曲，如下所示。

```
DELETE FROM Music WHERE Artist = 'The Acme Band'
```

## 從 DynamoDB 中的資料表刪除資料
<a name="SQLtoNoSQL.DeleteData.DynamoDB"></a>

在 DynamoDB 中，您可以使用 DynamoDB API 或 [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) (SQL 相容查詢語言) 刪除單一項目。如果您想要修改多個項目，則必須使用多個操作。

------
#### [ DynamoDB API ]

若使用 DynamoDB API，您會使用 `DeleteItem` 操作從資料表中刪除資料，一次刪除一個項目。您必須指定項目的主索引鍵值。

```
{
    TableName: "Music",
    Key: {
        Artist: "The Acme Band",
        SongTitle: "Look Out, World"
    }
}
```

**注意**  
除了 `DeleteItem` 之外，Amazon DynamoDB 還支援 `BatchWriteItem` 操作，可讓您同時刪除多個項目。

`DeleteItem` 支援*條件式寫入*，即只有在特定 `ConditionExpression` 評估為 true 時，操作才會成功。例如，下列 `DeleteItem` 操作只會刪除具有 *RecordLabel* 屬性的項目。

```
{
    TableName: "Music",
    Key: {
        Artist: "The Acme Band",
        SongTitle: "Look Out, World"
    },
   ConditionExpression: "attribute_exists(RecordLabel)"
}
```

------
#### [ PartiQL for DynamoDB ]

借助 PartiQL，您可以使用 `Delete` 陳述式透過 `ExecuteStatement` 操作從資料表刪除資料，一次刪除一個項目。您必須指定項目的主索引鍵值。

此資料表的主索引鍵包含 *Artist* 和 *SongTitle*。您必須指定這些屬性的值。

```
DELETE FROM Music
WHERE Artist = 'Acme Band' AND SongTitle = 'PartiQL Rocks'
```

您也可以為操作指定其他條件。以下 `DELETE` 操作僅刪除具有超過 11 個 *Awards* (獎項) 的項目。

```
DELETE FROM Music
WHERE Artist = 'Acme Band' AND SongTitle = 'PartiQL Rocks' AND Awards > 11
```

**注意**  
如需使用 `DELETE` 和 `ExecuteStatement` 的程式碼範例，請參閱 [適用於 DynamoDB 的 PartiQL Delete 陳述式](ql-reference.delete.md)。

------