Eliminar registros con DELETE en Oracle es una tarea fundamental en la gestión de bases de datos. En este artículo, explicaré cómo utilizar la instrucción DELETE
para eliminar registros de una tabla en Oracle. Esta sentencia permite borrar datos específicos según las condiciones definidas en la cláusula WHERE
. Si no se utiliza WHERE
, todos los registros de la tabla serán eliminados, por lo que es crucial comprender bien su funcionamiento para evitar eliminar datos de forma accidental.
La instrucción DELETE
es especialmente útil cuando necesitamos mantener la integridad de los datos y eliminar solo aquellos registros que cumplan criterios específicos, como fechas, identificadores o valores concretos en una columna. A lo largo de este artículo, primero mostraré la sintaxis básica de DELETE
y luego profundizaré en ejemplos prácticos que ilustran cómo aplicarla en distintos escenarios comunes.
Es importante destacar que, al usar esta instrucción, los cambios no son permanentes hasta que se ejecute un COMMIT
. Esto ofrece la flexibilidad de revertir los cambios si se comete un error, utilizando ROLLBACK
.
Para más información, puedes consultar la documentación oficial de ORACLE.
Sintaxis para eliminar registros en Oracle
Para llevar a cabo la eliminación de registros en Oracle, utilizamos una sintaxis específica que permite borrar datos de una tabla de forma controlada. Esta operación se realiza mediante la cláusula DELETE
, que puede ser complementada con la condición WHERE
para especificar qué registros deben ser eliminados. La sintaxis es clara y efectiva, lo que garantiza un manejo preciso de los datos. A continuación, te muestro la estructura básica:
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 borrará toda la tabla.
Al realizar un borrado nos devolverá un mensaje informando de cuántas filas se han borrado.
La cláusula DELETE
en Oracle se utiliza exclusivamente para eliminar datos almacenados en una tabla, pero no realiza ninguna modificación en la estructura de la tabla. Su propósito se limita al manejo del contenido, garantizando que la estructura y definición de la tabla permanezcan intactas.
Ejemplos
Borrar toda la tabla
Aunque se puede eliminar todo el contenido de una tabla utilizando la cláusula DELETE
, esta práctica no es recomendable debido a su menor eficiencia. Si necesitas borrar todos los datos de una tabla de manera más rápida y óptima, lo ideal es utilizar la cláusula TRUNCATE
. Además, TRUNCATE
es más eficiente porque opera a nivel de páginas de datos y no genera tantas entradas en el registro de transacciones.
delete from empleados;

Borrar registros que cumplan la condición
En el siguiente ejemplo, puedes ver cómo se eliminan todos los registros de empleados que cumplen con la condición especificada:
delete from empleados where id_empleado = 3;

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 por si ya existía DROP TABLE empleados; --Creamos la tabla de empleados CREATE TABLE empleados ( id_empleado numeric(2,0), id_departamento numeric(2,0), nombre character varying(50), puesto character varying(50), sueldo integer ); -- Insertamos registros de ejemplo INSERT INTO empleados VALUES (1,1,'Miguel Troyano','Analista', 60000); INSERT INTO empleados VALUES (2,1,'Ismael Troyano','Analista', 60000); INSERT INTO empleados VALUES (3,1,'Jose Troyano','Director', 80000); INSERT INTO empleados VALUES (4,1,'Pilar Troyano','Directora', 80000); -- Consultamos los datos select * from empleados; -- borramos el registro de Jose delete from empleados where id_empleado = 3; commit; -- Consultamos de nuevo los datos select * from empleados; -- Borramos toda la tabla delete from empleados; commit;