

# Diferencias entre una base de datos relacional (SQL) y DynamoDB al eliminar datos de una tabla
<a name="SQLtoNoSQL.DeleteData"></a>

En SQL, se utiliza la instrucción `DELETE` para eliminar una o varias filas de una tabla. Amazon DynamoDB utiliza la operación `DeleteItem` para eliminar los elementos de uno en uno.

**Topics**
+ [Eliminación de datos de una tabla con SQL](#SQLtoNoSQL.DeleteData.SQL)
+ [Eliminación de datos de una tabla en DynamoDB](#SQLtoNoSQL.DeleteData.DynamoDB)

## Eliminación de datos de una tabla con SQL
<a name="SQLtoNoSQL.DeleteData.SQL"></a>

En SQL, se utiliza la instrucción `DELETE` para eliminar una o varias filas. La cláusula `WHERE` determina qué filas se van a modificar. A continuación se muestra un ejemplo.

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

Puede modificar la cláusula `WHERE` para eliminar varias filas. Por ejemplo, puede eliminar todas las canciones de un determinado intérprete, como se muestra en el siguiente ejemplo.

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

## Eliminación de datos de una tabla en DynamoDB
<a name="SQLtoNoSQL.DeleteData.DynamoDB"></a>

En DynamoDB, puede utilizar la API clásica o [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) (un lenguaje de consulta compatible con SQL) para eliminar un solo elemento. Si desea modificar varios elementos, debe utilizar varias operaciones.

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

Con la API de DynamoDB, se utiliza la operación `DeleteItem` para eliminar datos de una tabla, de elemento en elemento. Debe especificar los valores de clave principal del elemento.

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

**nota**  
Además de `DeleteItem`, Amazon DynamoDB admite la operación `BatchWriteItem` para eliminar varios elementos a la vez.

`DeleteItem` admite las *escrituras condicionales*, en las que la operación únicamente se lleva a cabo correctamente si una expresión `ConditionExpression` determinada se evalúa en true. Por ejemplo, la operación `DeleteItem` siguiente elimina un elemento únicamente si tiene el atributo *RecordLabel*.

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

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

Con PartiQL, se utiliza la instrucción `Delete` mediante la operación `ExecuteStatement` para eliminar datos de una tabla, de elemento en elemento. Debe especificar los valores de clave principal del elemento.

La clave principal de esta tabla consta de *Artist* y *SongTitle*. Debe especificar los valores de estos atributos.

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

También puede especificar condiciones adicionales para la operación. La siguiente operación `DELETE` solo elimina el elemento si tiene más de 11 *Awards* (Premios).

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

**nota**  
Para obtener ejemplos de código mediante `DELETE` y `ExecuteStatement`, consulte [Instrucciones de eliminación de PartiQL para DynamoDB](ql-reference.delete.md).

------