Eliminar vs Truncar
Ambos comandos SQL (Structure Query Language), Delete y Truncate se utilizan para deshacerse de los datos almacenados en tablas en una base de datos. Delete es una declaración DML (Data Manipulation Language) y elimina algunas o todas las filas de una tabla. La 'cláusula Where' se usa para especificar las filas que deben eliminarse, y si la cláusula Where no se usa con la instrucción Delete, elimina todos los datos de la tabla. Truncar es una declaración DDL (lenguaje de definición de datos) y elimina todos los datos de la tabla. Ambos comandos no destruyen la estructura de la tabla y las referencias a la tabla, y solo se eliminan los datos según sea necesario.
Eliminar declaración
La declaración de eliminación 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 conoce como una 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 declaración DML, por lo que no se confirma automáticamente al ejecutar el comando. Por lo tanto, la operación de eliminación 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 base de datos. Además, no desasigna el espacio de memoria utilizado por la tabla.
La sintaxis típica del comando Eliminar se indica a continuación.
BORRAR DE
o
BORRAR DE DONDE
Declaración truncada
La declaración Truncar elimina todos los datos de una tabla existente en una base de datos, pero conserva la misma estructura de tabla, también 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 los datos completos al desasignar las páginas de datos que se utilizan para mantener los datos, y solo estas desasignaciones de páginas se mantienen en el registro de transacciones. Por lo tanto, el comando truncar utiliza solo menos recursos del registro de transacciones y del sistema 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 revertir los datos nuevamente 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.
A continuación se muestra la sintaxis común para la instrucción Truncate.
MESA TRUNCATE
¿Cuál es la diferencia entre Eliminar 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 solo se puede usar para eliminar datos completos en la tabla. 3. Eliminar es un comando DML y puede revertir la operación si es necesario, pero Truncar 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 tanto, es importante utilizar este comando con cuidado en la gestión de bases de datos. 4. La operación Truncar consume menos recursos del sistema y 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 usado por la tabla, mientras que Truncate libera el espacio usado 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, no se permite el uso de Truncar cuando una restricción de clave externa hace referencia a la tabla y, en ese caso, se puede usar el comando Eliminar en lugar de Truncar. 7. Finalmente, ambos comandos tienen ventajas y también desventajas al aplicarlos en los sistemas de administración de bases de datos y el usuario debe ser consciente de usar estos comandos de manera apropiada para lograr buenos resultados. |