

# Diferenças entre um banco de dados relacional (SQL) e o DynamoDB ao excluir dados de uma tabela
<a name="SQLtoNoSQL.DeleteData"></a>

No SQL, a instrução `DELETE` remove uma ou mais linhas de uma tabela. O Amazon DynamoDB usa a operação `DeleteItem` para excluir um item de cada vez.

**Topics**
+ [

## Excluir dados de uma tabela com o SQL
](#SQLtoNoSQL.DeleteData.SQL)
+ [

## Excluir dados de uma tabela no DynamoDB
](#SQLtoNoSQL.DeleteData.DynamoDB)

## Excluir dados de uma tabela com o SQL
<a name="SQLtoNoSQL.DeleteData.SQL"></a>

No SQL, você usa a instrução `DELETE` para excluir uma ou mais linhas. A cláusula `WHERE` determina as linhas que você deseja modificar. Veja um exemplo a seguir.

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

Você pode modificar a cláusula `WHERE` para excluir várias linhas. Por exemplo, é possível excluir todas as músicas de um determinado artista, conforme mostrado no exemplo a seguir.

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

## Excluir dados de uma tabela no DynamoDB
<a name="SQLtoNoSQL.DeleteData.DynamoDB"></a>

No DynamoDB, você pode usar a API do DynamoDB ou do [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) (uma linguagem de consultas compatível com SQL) para excluir um único item. Caso deseje modificar vários itens, você deve usar várias operações.

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

Com a API do DynamoDB, use a operação `DeleteItem` para excluir dados de uma tabela, um item de cada vez. Você deve especificar os valores de chave primária do item.

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

**nota**  
Além do `DeleteItem`, o Amazon DynamoDB comporta uma operação `BatchWriteItem` para excluir vários itens ao mesmo tempo.

`DeleteItem` oferece suporte a *gravações condicionais*, nas quais a operação será bem-sucedida apenas se uma `ConditionExpression` específica for verdadeira. Por exemplo, a operação `DeleteItem` a seguir exclui o item somente se ele tiver um atributo *RecordLabel*.

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

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

Com PartiQL, use a instrução `Delete` por meio da operação `ExecuteStatement` para excluir dados de uma tabela, um item de cada vez. Você deve especificar os valores de chave primária do item.

A chave primária dessa tabela consiste em *Artist* e *SongTitle*. Você deve especificar valores para esses atributos.

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

Você também pode especificar condições adicionais para a operação. A operação `DELETE` a seguir somente excluirá o item se ele tiver mais de 11 *Awards* (Prêmios).

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

**nota**  
Para obter exemplos de código que usam `DELETE` e `ExecuteStatement`, consulte [Instruções Delete em PartiQL para DynamoDB](ql-reference.delete.md).

------