En este artículo vamos aprender a eliminar registros con DELETE en Oracle 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 Oracle
Para eliminar registros en Oracle utilizamos la siguiente sintaxis:
delete from nombreTabla where condicion
En la sintaxis anterior:
- Primero decimos de que 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.
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 optima, 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;
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; -- Consultamos de nuevo los datos select * from empleados; -- Borramos toda la tabla delete from empleados;