Cláusula DELETE
La cláusula DELETE se
utiliza para borrar filas de una tabla.
Syntaxis
DELETE FROM Nombre_Tabla
[WHERE Condicion] [LIMIT cuenta]
Ejemplos
Borrar determinadas
filas con WHERE
Esto eliminará todas las filas que
coincidan con los criterios WHERE.
DELETE FROM Empleados WHERE FNombre = 'Juan';
Borrar todas las
filas
Omitir la cláusula WHERE eliminará todas las filas de una tabla.
DELETE FROM Empleados;
Consultar la documentación de TRUNCATE para obtener detalles sobre cómo
se puede mejorar el rendimiento de TRUNCATE. Porque esta cláusula
ignora los triggers, los índices y los log para simplemente eliminar
los datos.
Cláusula TRUNCATE
Utilízaremos TRUNCATE para restablecer la tabla a la condición en la que se creó. Esto elimina todas las filas y se restablecen los valores como el incremento automático. Tampoco registra en un log la eliminación de cada fila individual.
TRUNCATE TABLE Empleados;
Borrar determinados
registros basándose en comparaciones con otras tablas
Es
posible eliminar datos de una tabla si coinciden (o no coinciden) con ciertos
datos de otras tablas. Supongamos que queremos eliminar datos del origen una
vez cargados en el destino.
DELETE FROM Tabla_Origen WHERE EXISTS ( SELECT
1 --(no importa el valor específico en la
query) FROM Tabla_Destino WHERE Tabla_Fuente.ID = Tabla_Destino.ID )
Permite
que las tablas se unan durante la ejecución del DELETE, lo que permite una
comparación más compleja en una sintaxis compacta. Para agregar complejidad al
escenario original, supongamos que añadimos más registros a Tabla_Destino una
vez al día y no contienen el mismo ID pero si contienen la misma fecha. Supongamos
también que queremos eliminar los datos de la Tabla_Fuente solo después de que se
complete el agregado del día:
DELETE FROM Tabla_Fuente WHERE Tabla_Fuente.ID = EsquemaDestino.Tabla_Destino.ID
AND EsquemaDestino.Tabla_Destino.Fecha
= EsquemaAgregado.Tabla_Agregado.Fecha
Básicamente,
esto da como resultado un INNER JOIN entre el origen y el destino añadido. La
eliminación es realizada en el origen cuando existen los mismos ID en el
destino Y la fecha presente en el destino para esos ID también existe en el
destino agregado. También se puede escribir la misma consulta como:
DELETE Tabla_Fuente FROM Tabla_Fuente, EsquemaDestino.Tabla_Destino,
EsquemaAgregado.Tabla_Agregado WHERE Tabla_Fuente.ID = EsquemaDestino.Tabla_Destino.ID AND EsquemaDestino.Tabla_Destino.Fecha
= EsquemaAgregado.Tabla_Agregado.Fecha
Se pueden mencionar uniones explícitas en declaraciones de eliminación y diseñar comparaciones para verificar escenarios que no coinciden en lugar de hacer coincidir aquellos con todos. (Ver el NOT EXIST a continuación)
DELETE FROM Tabla_Fuente
WHERE NOT EXISTS (
SELECT 1 – el valos especifico en la SELECT no importa
FROM Tabla_Destino WHERE Tabla_Fuente.ID
= Tabla_Destino.ID )
Es posible eliminar datos de una tabla si coinciden (o no coinciden) con ciertos datos de otras tablas. Supongamos que queremos eliminar datos del origen una vez cargados en el destino.
DELETE FROM Fuente WHERE EXIST (SELECT 1 FROM Destino WHERE
Fuente.ID = Destino.ID)
Las tablas se unirán durante el borrado, lo que permitirá una comparación
más compleja en una sintaxis compacta.
Para agregar complejidad al escenario original, supongamos queremos
añadir a la tabla Destino los registros de la Fuente de forma automática una
vez al día mediante una tabla Agregado y no contiene el mismo ID pero
contiene la misma fecha. Supongamos también que queremos eliminar los datos de la tabla
Fuente solo después
de que se complete el agregado del día;
Esto se puede hacer usando:
DELETE FROM Fuente WHERE Fuente.ID = EsquemaDestino.Destino.ID
AND EsquemaDestino.Destino.Fecha = EsquemaAgregado.Agregado.Fecha
Básicamente, esto da como resultado INNER JOINS entre Fuente, Destino y
Agregado. La eliminación es realizada en el origen cuando existen
los mismos ID en el destino y para la fecha actual en el destino para esos ID también existe en la
tabla Agregado. También se puede escribir la misma consulta
DELETE Tabla_Fuente
FROM Tabla_Fuente, EsquemaDestino.Tabla_Destino, EsquemaAgradado.Tabla_Agregado
WHERE Tabla_Fuente.ID = EsquemaDestino.Tabla_Destinot.ID
AND EsquemaDestino.Tabla_Destino.Fecha = EsquemaAgregado.Tabla_Agregado.Fecha
Se pueden mencionar uniones explícitas en declaraciones de eliminación
Se pueden diseñar comparaciones para verificar escenarios que no coinciden en lugar de hacer
coincidir aquellos con todos. (observar NOT EXIST a continuación)
DELETE FROM Tabla_Fuente
WHERE NOT EXIST (SELECT 1 --: el valor específico en SELECT no importa
FROM Tabla_Detino
WHERE Tabla_Fuente.ID = Tabla_Destino.ID)
DROP o DELETE
Database
DROP DATABASE [IF EXISTS] {nombre_basedatos|
nombre_captura_basedatos } [ ,...n ] [;]
Comentarios
Se utiliza para eliminar una base de
datos de SQL. Es necesario asegurarse de crear una copia de seguridad de la base
de datos antes de eliminarla para evitar la pérdida accidental de información.
Ejemplos
DROP Database
Eliminar la base de datos es una
simple declaración de una sola línea; eliminará la base de datos, por lo tanto,
es necesario asegurarse siempre de tener una copia de seguridad de la base de
datos si es necesario. A continuación se muestra el comando para eliminar la
base de datos de empleados
DROP DATABASE
dbo.Empleados
DROP Table
DROP TABLE elimina la definición de la tabla del esquema junto con las filas, índices, permisos y triggers.
Ejemplos
Drop Table Nombre_Tabla;
Chequea la existencia
de claves foráneas antes del borrado, si encuentra alguna devolverá un error.