Eliminar registros con DELETE en PostgreSQL

En este artículo vamos aprender a eliminar registros con DELETE en PostgreSQL de una tabla. Usaremos la cláusula DELETE para borrar, que junto al where borraremos solo aquellos registros que cumplan la condición.

Sintaxis para eliminar registros en PostgreSQL

Para eliminar registros en PostgreSQL utilizamos la siguiente sintaxis:

delete from nombreTabla
where condicion

En la sintaxis anterior:

  • Primero decimos de qué tabla queremos borrar los datos. Escribimos delete from seguido del nombre de la tabla.
  • En segundo lugar, después de la palabra where escribimos cuando debe borrar los datos.

Ten en cuenta que la cláusula WHERE es opcional y si no lo especificas borrara toda la tabla.

Al realizar un borrado nos devolverá un mensaje informando de cuántas filas se han borrado al no ser que le especifiques lo contrario.

Si quieres que al borrar registros en lugar de mostrarte el número de registros que se han borrado quieres que te muestre los datos, puedes utilizar la palabra RETURNING. Ten en cuenta que el uso de esta palabra solo te mostrará los registros que se han borrado, no toda la tabla.

DELETE solo borra información, nunca actúa sobre la estructura de la tabla.

Ejemplos

Borrar toda la tabla

Aunque es posible borrar toda la tabla utilizando delete no es nada aconsejable. Para borrar todos los datos de una tabla de la forma más óptima, usa la cláusula TRUNCATE.

delete from empleados;

Borrar registros que cumplan la condición

En el siguiente ejemplo puede observar cómo se van a borrar todos los empleados que cumplan con la condición:

delete from empleados
where id_empleado = 3;

Borrar registros que cumplan la condición, pero que nos muestre qué dato ha borrado

En el siguiente ejemplo borramos los registros y le indicamos que nos los muestre al terminar. La cláusula RETURNING la puedes utilizar junto al asterisco para mostrar todos los campos o puedes especificar que campos quieres mostrar.

delete from empleados
where id_empleado = 3
returning *;

Ejemplo completo

Copia y pega el siguiente código en tu consola de PostgreSQL y realiza paso a paso leyendo los comentarios.

-- borramos la tabla si existe
drop table if exists empleados;
 
-- creamos la tabla
create table empleados (
  id _empleado numeric(2),
  nombre varchar(50)
);

-- Insertamos registros:
insert into empleados (id_empleado, nombre)
  values (1,'Miguel'),
         (2,'Ismael'),
         (3,'Pilar');

-- Consultamos los datos
select *
from empleados;

-- borramos el registro de Pilar
delete from empleados
where id_empleado = 3;

-- borramos el registro de Miguel, pero
-- que nos muestre lo que borra
delete from empleados
where id_empleado = 1
returning *;

-- Consultamos de nuevo los datos
select *
from empleados;

-- Borramos toda la tabla
delete from empleados;

Escribir un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.