PostgreSQL Eliminar consulta (eliminar filas de la selección)

Eliminar consulta en PostgreSQL

La Eliminar declaración in PostgreSQL Se utiliza para eliminar uno o más registros de una tabla. Si desea eliminar filas seleccionadas de una tabla PostgreSQL le permite combinar la declaración DELETE con la cláusula WHERE; de lo contrario, eliminará todos los registros.

Sintaxis de consulta de eliminación de Postgres

La declaración DELETE se puede definir mediante la siguiente sintaxis:

[ WITH [ RECURSIVE ] with-query [, ...] ]
DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ]
    [ USING using-list ]
    [ WHERE condition(s) | WHERE CURRENT OF cursor-name]
    [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]

parámetros

  • con-consulta: la cláusula CON nos permite hacer referencia a una o más subconsultas a las que se hará referencia por nombre en la consulta DELETE.
  • nombre de la tabla: el nombre de la tabla de la que se eliminarán los registros.
  • alias: este es un sustituto del nombre de la tabla de destino.
  • lista de uso: expresiones de tabla para permitir que se utilicen columnas de otras tablas en la cláusula WHERE.
  • condición (es): opcional. Son las condiciones que se deben cumplir para que los registros sean eliminados. Si no se proporciona esta sección, se eliminarán todos los registros de nombres de tablas.
  • nombre-cursor: el cursor que se utilizará en la condición DONDE ACTUAL DE. Se eliminará la última fila recuperada por este cursor.
  • expresión-salida: la expresión que se procesará y devolverá mediante la declaración DELETE después de eliminar cada fila.
  • nombre-salida: el nombre que se utilizará para la columna devuelta.

Tenga en cuenta que, dado que la instrucción DELETE elimina toda la fila, no es necesario especificar los nombres de las columnas.

PostgreSQL Eliminar consulta con una condición

La instrucción DELETE se puede utilizar con una única condición. La condición se establece mediante la cláusula WHERE. Considere la tabla Price con los siguientes datos:

Precio

PostgreSQL Eliminar consulta con una condición

Eliminemos el registro con una identificación de 4:

DELETE FROM Price
WHERE id = 4;

El comando anterior eliminará los registros en los que la identificación es 4. Confirmemos si la eliminación fue exitosa:

PostgreSQL Eliminar consulta con una condición

Se ha eliminado la fila con una identificación de 4.

Eliminar consulta con dos condiciones

La PostgreSQL La sentencia DELETE puede aceptar dos condiciones. Las dos condiciones deben unirse mediante el operador AND. Usaremos la siguiente tabla:

Precio:

PostgreSQL Eliminar consulta con dos condiciones

Considere el ejemplo que se da a continuación:

DELETE FROM Price
WHERE id = 3Y
AND price = 300;

En el comando anterior, eliminamos la fila en la que la identificación es 3 y el precio es 300. Ahora podemos consultar la tabla:

SELECT * FROM Price

Esto devuelve lo siguiente:

PostgreSQL Eliminar consulta con dos condiciones

Se eliminó el registro con una identificación de 3 y un precio de 300.

PostgreSQL Eliminar consulta usando la condición Existe

Con la condición EXISTS, puede hacer que la operación DELETE sea más compleja. A veces, puede ser necesario eliminar registros de una tabla en función de los registros de otra tabla.

Verá que la cláusula FROM no le permite enumerar registros de más de una tabla al realizar una eliminación, la cláusula EXISTS resulta muy útil. Tenemos las siguientes dos tablas:

Libro:

PostgreSQL Eliminar consulta usando la condición Existe

Precio:

PostgreSQL Eliminar consulta usando la condición Existe

Luego podemos ejecutar la siguiente consulta:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

El comando anterior eliminará de la tabla Libro donde exista un registro en la tabla Precio con una identificación que coincida con la de la tabla Libro y el precio sea inferior a 250.

La tabla Libro ahora es la siguiente:

PostgreSQL Eliminar consulta usando la condición Existe

Se eliminó el registro con una identificación de 1.

Cómo eliminar una fila en PostgreSQL usando pgAdmin

A continuación se muestran los pasos para eliminar una fila en PostgreSQL usando pgAdmin:

Con una condición

Para lograr lo mismo a través de pgAdmin, haga esto:

Paso 1) Inicie sesión en su cuenta pgAdmin

Abra pgAdmin e inicie sesión en su cuenta usando sus credenciales

Paso 2) Cree una base de datos de demostración

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

Eliminar fila en PostgreSQL

Paso 3) Escriba la consulta

Escriba la siguiente consulta en el editor de consultas:

DELETE FROM Price
WHERE id = 4;

Paso 4) Ejecutar la consulta

Haga clic en el botón Ejecutar

Eliminar fila en PostgreSQL

Paso 5) Verifique si la fila está eliminada

Comprobemos si la eliminación se realizó correctamente:

Eliminar fila en PostgreSQL

Con dos condiciones

Para lograr lo mismo a través de pgAdmin, haga esto:

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

Eliminar fila en PostgreSQL

Paso 3) Escriba la consulta en el editor de consultas:

DELETE FROM Price
WHERE id = 3
AND price = 300;

Paso 4) Haga clic en el botón Ejecutar.

Eliminar fila en PostgreSQL

Paso 5) Comprobemos si la eliminación se realizó correctamente:

Eliminar fila en PostgreSQL

Usando la condición EXISTE

Para lograr lo mismo a través de pgAdmin, haga esto:

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

Eliminar fila usando la condición EXISTS

Paso 3) Escriba la consulta en el editor de consultas:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Paso 4) Haga clic en el botón Ejecutar.

Eliminar fila usando la condición EXISTS

Paso 5) Comprobemos si la eliminación se realizó correctamente:

Eliminar fila usando la condición EXISTS

Resum

  • La declaración DELETE se utiliza para eliminar uno o más registros de una tabla.
  • Para eliminar solo filas seleccionadas de una tabla, puede combinar la declaración DELETE con la cláusula WHERE.
  • Si la cláusula DELETE se usa sin la cláusula WHERE, elimina todos los registros de la tabla.
  • El parámetro nombre-tabla le permite agregar el nombre de la tabla de la cual se eliminarán los registros.
  • Podemos usar la declaración DELETE con una condición, especificada usando la cláusula WHERE.
  • La declaración DELETE también se puede utilizar con dos condiciones especificadas en la cláusula WHERE. Las dos condiciones deben unirse utilizando el operador AND.
  • La EXISTE La condición puede ayudarnos a eliminar registros de una tabla en función de los registros de otra tabla.

Descargue la Base de Datos utilizada en este Tutorial