# PostgreSQL DELETE: cómo eliminar contenido de una tabla

PostgreSQL `DELETE` se puede utilizar para eliminar contenido de una tabla. Además, este comando puede especificarse mediante cláusulas para que solo ciertas filas sean elegibles para su eliminación. Dado que la eliminación no se puede deshacer, es importante usar el comando con mucho cuidado.

## ¿Qué es PostgreSQL `DELETE`?

El comando `DELETE` se usa en [PostgreSQL](https://www.ionos.com/es-us/digitalguide/servidores/know-how/postgresql/) para **borrar entradas de una tabla**. Puedes utilizar la cláusula `WHERE` para seleccionar filas específicas de las que se eliminará el contenido. Si omites la cláusula `WHERE` al utilizar el comando, todo el contenido de la tabla en cuestión **se eliminará definitivamente**. Por este motivo, se debe utilizar el comando con mucha precaución.

## PostgreSQL `DELETE`: sintaxis y funcionalidad

La sintaxis de PostgreSQL `DELETE` tiene la siguiente estructura básica:

```postgresql
DELETE FROM nombre_de_la_tabla 
WHERE [condición]
```

La palabra clave `DELETE FROM` inicia el borrado en la tabla especificada. Puedes utilizar la cláusula `WHERE` para especificar en qué filas se debe eliminar el contenido. Si deseas tener en cuenta varias condiciones, puedes enumerarlas usando `AND` o `OR`.

Nota Antes de borrar datos, debes asegurarte de que dispones de una copia de seguridad actual de la base de datos o ejecutar el proceso de borrado en una transacción. De este modo, puedes evitar que se pierdan datos importantes si el comando se ejecuta incorrectamente por descuido.

## Eliminar todo el contenido de una tabla

La forma más fácil de explicar cómo funciona `DELETE` en PostgreSQL es con un ejemplo práctico. Para ello, usamos el comando [CREATE TABLE](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/postgresql-create-table/) para crear una nueva tabla PostgreSQL llamada “Lista de clientes”. A continuación, usamos [INSERT INTO](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/postgresql-insert-into/) para completarla con varias informaciones. La tabla tiene tres columnas llamadas “ID”, “Nombre” y “Ciudad” e inicialmente contiene cuatro entradas. Este es el aspecto que tiene:

```postgresql
|ID|Nombre|Ciudad| 
|-|-|-| 
|1|Sánchez|Los Ángeles| 
|2|Morales|Nueva York| 
|3|Santos|Chicago| 
|4|Sánchez|San Antonio|
```

Si ahora queremos mantener la tabla, pero **borrar todo el contenido**, utilizamos PostgreSQL `DELETE` sin una cláusula adicional. El comando entonces sería así para nuestro ejemplo:

```postgresql
DELETE FROM lista_de_clientes;
```

## Borrar una fila con PostgreSQL `DELETE`

Más a menudo, sin embargo, te encontrarás en una situación en la que simplemente quieres eliminar **una fila específica**. Esto también se hace con PostgreSQL `DELETE`. Para ello, utilizamos el comando con una cláusula `WHERE`. Para nuestro ejemplo, queremos eliminar el cliente “Morales” con el ID “2”. El código apropiado sería el siguiente:

```postgresql
DELETE FROM lista_de_clientes 
WHERE ID = 2;
```

## Especificar filas con múltiples cláusulas

Pueden producirse entradas duplicadas y, por tanto, ambiguas, especialmente en tablas largas. Si deseas asegurarte de que solo se elimina la fila deseada, puedes utilizar PostgreSQL `DELETE` con **cláusulas múltiples**. En nuestro ejemplo, tenemos dos clientes llamados “Sánchez” y solo queremos eliminar la segunda entrada. Por lo tanto, combinamos dos cláusulas. El código es el siguiente:

```postgresql
DELETE FROM lista_de_clientes 
WHERE Nombre = 'Sánchez' 
AND ID >= 3;
```

De esta forma, se eliminan todas las filas en las que el nombre “Sánchez” y el ID es mayor o igual que “3”. Como la primera entrada con el nombre tiene un ID inferior a “3”, esta entrada permanece en la base de datos incluso después del comando de borrado.


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/servidores/configuracion/postgresql-delete/](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/postgresql-delete/) for AI/LLM consumption.