

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

# 使用 CQL `DELETE`陳述式從資料表刪除資料
<a name="getting-started.dml.delete"></a>

若要刪除`book_awards`資料表中的資料，請使用 `DELETE`陳述式。

您可以從資料列或分割區刪除資料。刪除資料時請小心，因為刪除是不可復原的。

從資料表刪除一列或所有資料列並不會刪除資料表。因此，您可以將資料重新填入其中。刪除資料表會刪除資料表及其中的所有資料。若要再次使用資料表，您必須重新建立資料表並將其新增資料。刪除金鑰空間會刪除金鑰空間及其中的所有資料表。若要使用 金鑰空間和資料表，您必須重新建立它們，然後將資料填入它們。您可以使用 Amazon Keyspaces Point-in-time(PITR) 復原來協助還原已刪除的資料表，進一步了解 [使用 point-in-time復原來備份和還原資料](PointInTimeRecovery.md) 。若要了解如何還原已啟用 PITR 的已刪除資料表，請參閱 [使用 Amazon Keyspaces PITR 還原已刪除的資料表](restoredeleted.md)。

## 刪除儲存格
<a name="getting-started.dml.delete-cell"></a>

從資料列刪除資料欄會從指定的儲存格移除資料。當您使用`SELECT`陳述式顯示該資料欄時，資料會顯示為 *null*，但 null 值不會存放在該位置。

刪除一或多個特定資料欄的一般語法如下所示。

```
DELETE column_name1[, column_name2...] FROM table_name WHERE condition ;
```

在您的`book_awards`資料表中，您可以看到 2020 年「Richard Roe」價格中第一個價格的書名是「Long Summer」。假設此標題已召回，您需要從此儲存格刪除資料。

**刪除特定儲存格**

1. 使用下列命令開啟 AWS CloudShell 並連線至 Amazon Keyspaces。請務必使用您自己的區域更新 *us-east-1*。

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

1. 執行下列`DELETE`查詢。

   ```
   DELETE book_title FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
   ```

1. 確認已如預期提出刪除請求。

   ```
   SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
   ```

   此陳述式的輸出如下所示。

   ```
    year | award       | category | rank | author            | book_title | publisher
   ------+-------------+----------+------+-------------------+------------+---------------
    2020 | Richard Roe |  Fiction |    1 | Alejandro Rosalez |       null | SomePublisher
   ```

## 刪除資料列
<a name="getting-started.dml.delete-row"></a>

有時候您可能需要刪除整個資料列，例如符合資料刪除請求。刪除資料列的一般語法如下。

```
DELETE FROM table_name WHERE condition ;
```

**刪除資料列**

1. 使用下列命令開啟 AWS CloudShell 並連線至 Amazon Keyspaces。請務必使用您自己的區域更新 *us-east-1*。

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

1. 執行下列`DELETE`查詢。

   ```
   DELETE FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
   ```

1. 確認已如預期進行刪除。

   ```
   SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
   ```

   刪除資料列後，此陳述式的輸出看起來像這樣。

   ```
    year | award | category | rank | author | book_title | publisher
   ------+-------+----------+------+--------+------------+-----------
   
   (0 rows)
   ```

您可以使用 Amazon Keyspaces 存留時間自動刪除資料表中的過期資料，如需詳細資訊，請參閱 [使用 Amazon Keyspaces 的存留時間 (TTL) 過期資料 （適用於 Apache Cassandra)](TTL.md)。