Para eliminar filas de una tabla, hay dos opciones: el comando DELETE
y el comando TRUNCATE. DELETE es menos drástico, ya que puede ser revertido, un
TRUNCATE no puede ser revertido. DELETE es mas controlable, ya que es posible
elegir que filas eliminar, sin embargo un TRUNCATE siempre afectara el total de
la tabla. DELETE es más lento y requiere más esfuerzo de la Base de Datos.
TRUNCATE es virtualmente instantáneo.
Eliminando Filas con DELETE
DELETE puede eliminar filas de una sola tabla. La sintaxis es como
sigue:
DELETE FROM table [
WHERE condición ] ;
Es el comando más simple de los comandos DML, si la clausula WHERE es
omitida. En ese caso cada fila de la tabla será eliminada. La única complicación
del comando es la condición. Esta puede ser una comparación de una columna con
un literal.
Ejemplos:
-- EJEMPLO 1
DELETE FROM employees
WHERE employee_id = 198;
Este ejemplo realiza una eliminación mediante la llave primaria. Esto nos
garantiza que solo una fila será eliminada o nada.
-- EJEMPLO 2
DELETE FROM regions
WHERE region_name LIKE 'R%';
En este ejemplo se utiliza una comparación con el operador LIKE y este
va a eliminar todas las regiones que inicien con la letra R.
-- OTROS EJEMPLOS
delete from employees where
department_id=&Which_department;
delete from
employees where department_id is null;
La condición también puede utilizar subquerys. Estos deben ser
escalares si está utilizando operadores de igual o pueden devolver varias filas
pero si está utilizando el operador IN.
Si el comando DELETE no encuentra ninguna fila a eliminar, esto no es
un error. El comando devolverá el mensaje "0 filas eliminadas" en
lugar de un mensaje de error porque la declaración se completó con éxito,
simplemente no se encontró nada que hacer.
Comentarios
Publicar un comentario