Databases
T02-003- Borrado de registros.
Enunciado
La sentencia
DELETEes la que permite eliminar o borrar registros de un tabla.Sintaxis
Esta es la sintaxis que debes tener en cuenta para utilizarla:
DELETE FROM nombre_tabla [ WHERE condición ];Al igual que hemos visto en las sentencias anteriores, nombre_tabla hace referencia a la tabla sobre la que se hará la operación, en este caso de borrado. Se puede observar que la cláusula
WHEREes opcional. Si no se indica, debes tener muy claro que se borrará todo el contenido de la tabla, aunque la tabla seguirá existiendo con la estructura que tenía hasta el momento.Ejemplo
Podemos eliminar todos los registros de la tabla job_history con la siguiente sentencia:
DELETE FROM job_history;La necesidad de eliminar todos los registros no es habitual en la realidad y, para esos casso, existe una sentencia alternativa, que permite eliminar todo el contenido de una tabla sin eliminar su estructura:
TRUNCATE TABLE job_history;Nota: La sentencia TRUNCATE no se puede deshacer, por lo que un ROLLBACK posterior no restablecería los registros de la tabla.
La sentencia
DELETEsuele requerir el uso de la cláusulaWHERE: los registros que se eliminen serán aquellos que cumplan las restricciones establecidas en elWHERE.En el siguiente ejemplo, eliminaremos los registros de la tabla job_history cuya fecha de finalización sea anterior al año 2005:
DELETE FROM job_history
WHERE EXTRACT(YEAR FROM END_DATE) < 2005;Ejercicio
Elimina todos los departamentos que no tienen ningún MANAGER_ID asignado.
Nota: recuerda que en Juez-LTI debes cualificar las tablas con el esquema HR
Tipo
Solución
DELETE FROM HR.departments
WHERE MANAGER_ID IS NULL;
Prueba
SELECT *
FROM HR.DEPARTMENTS
WHERE DEPARTMENT_ID BETWEEN 100 AND 150
ORDER BY DEPARTMENT_ID
LibrerÃas (Onfly databases)

