Eliminar frente a truncar
Los comandos SQL (Structure Query Language), Delete y Truncate se utilizan para deshacerse de los datos almacenados en las tablas de una base de datos. Delete es una instrucción DML (lenguaje de manipulación de datos) y elimina algunas o todas las filas de una tabla. La 'cláusula Dónde' se usa para especificar las filas que se deben eliminar, y si la cláusula Dónde no se usa con la instrucción Eliminar, elimina todos los datos de la tabla. Truncar es una instrucción DDL (lenguaje de definición de datos) y elimina datos completos de la tabla. Ambos comandos no destruyen la estructura de la tabla ni las referencias a la tabla, y solo se eliminan los datos según sea necesario.
Borrar estado de cuenta
La declaración Delete permite al usuario eliminar datos de una tabla existente en una base de datos en función de una condición específica, y la 'cláusula Where' se utiliza para determinar esta condición. El comando Eliminar se denomina ejecución registrada, porque elimina solo una fila a la vez y mantiene una entrada para cada eliminación de fila en el registro de transacciones. Entonces, esto hace que la operación sea más lenta. Delete es una instrucción DML, por lo que no se confirma automáticamente al ejecutar el comando. Por lo tanto, la operación Eliminar se puede revertir para acceder a los datos nuevamente, si es necesario. Después de la ejecución del comando Eliminar, debe confirmarse o revertirse para guardar los cambios de forma permanente. La declaración de eliminación no elimina la estructura de la tabla de la tabla de la base de datos. Además, no desasigna el espacio de memoria utilizado por la tabla.
La sintaxis típica para el comando Eliminar se indica a continuación.
ELIMINAR DE
o
ELIMINAR DESDE DONDE
Instrucción truncada
La instrucción Truncate elimina todos los datos de una tabla existente en una base de datos, pero conserva la misma estructura de tabla, además de las restricciones de integridad, los privilegios de acceso y las relaciones con otras tablas. Por lo tanto, no es necesario volver a definir la tabla, y se puede usar la estructura de la tabla anterior, si el usuario desea reutilizar la tabla nuevamente. Truncar elimina datos completos desasignando las páginas de datos utilizadas para conservar los datos, y solo estas desasignaciones de páginas se conservan en el registro de transacciones. Por lo tanto, el comando truncar utiliza solo menos recursos del sistema y del registro de transacciones para la operación, por lo que es más rápido que otros comandos relacionados. Truncar es un comando DDL, por lo que utiliza compromisos automáticos antes y después de la ejecución de la declaración. Por lo tanto, truncar no puede volver a revertir los datos de ninguna manera. Libera espacio de memoria utilizado por la tabla después de la ejecución. Pero la instrucción Truncate no se puede aplicar en las tablas a las que hacen referencia las restricciones de clave externa.
La siguiente es la sintaxis común para la instrucción Truncate.
TABLA TRUNCADA
¿Cuál es la diferencia entre Borrar y Truncar?
1. Los comandos Eliminar y Truncar eliminan datos de tablas existentes en una base de datos sin dañar la estructura de la tabla u otras referencias a la tabla.
2. Sin embargo, el comando Eliminar se puede usar para eliminar filas específicas solo en una tabla usando una condición relevante, o para eliminar todas las filas sin ninguna condición, mientras que el comando Truncar se puede usar solo para eliminar datos completos en la tabla.
3. Delete es un comando DML y puede revertir la operación si es necesario, pero Truncate es un comando DDL, por lo que es una declaración de confirmación automática y no se puede revertir de ninguna manera. Por lo tanto, es importante usar este comando con cuidado en la administración de la base de datos.
4. La operación Truncar consume menos recursos del sistema y recursos del registro de transacciones que la operación Eliminar, por lo tanto, Truncar se considera más rápido que Eliminar.
5. Además, Delete no desasigna el espacio utilizado por la tabla, mientras que Truncate libera el espacio utilizado después de la ejecución, por lo que Delete no es eficiente en caso de eliminar todos los datos de una tabla de base de datos.
6. Sin embargo, Truncar no se puede usar cuando la tabla está referenciada por una restricción de clave externa y, en ese caso, se puede usar el comando Eliminar en lugar de Truncar.
7. Finalmente, estos dos comandos tienen ventajas y también desventajas al aplicarlos en los sistemas de gestión de bases de datos y el usuario debe ser consciente de utilizar estos comandos adecuadamente para lograr buenos resultados.