Chuck's Academy

Base de Datos

Operaciones DELETE en SQL

El comando DELETE en SQL nos permite eliminar uno o más registros de una tabla. Sin embargo, es importante usar DELETE con precaución, ya que una vez que los registros se eliminan, no pueden recuperarse a menos que se hayan realizado respaldos previamente. En este capítulo, aprenderemos cómo utilizar DELETE de manera eficiente y segura.

Eliminando Registros con DELETE

delete sql.pngdelete sql.png

El uso básico de DELETE es eliminar registros que cumplan con una determinada condición. A continuación, se muestra un ejemplo básico de cómo eliminar un usuario en la tabla users cuyo id es 1:

sql
"En este ejemplo, estamos eliminando el registro de la tabla users donde el campo id es igual a uno. La cláusula WHERE es esencial para asegurarnos de que estamos eliminando solo el registro correcto."

Uso Precavido de DELETE

Es fundamental que siempre usemos la cláusula WHERE con DELETE para evitar eliminar todos los registros de una tabla accidentalmente. Si se omite WHERE, todos los registros serán eliminados.

sql
"Este comando eliminaría todos los registros de la tabla users. Es importante nunca ejecutar un comando DELETE sin la cláusula WHERE, a menos que realmente queramos vaciar completamente la tabla."

Eliminando Múltiples Registros

Podemos eliminar varios registros en una sola operación si la cláusula WHERE selecciona más de un registro. A continuación, un ejemplo para eliminar todos los usuarios cuyo correo electrónico termine en 'example.com':

sql
"Aquí estamos eliminando todos los usuarios de la tabla users cuyos correos electrónicos terminan en example.com. La cláusula LIKE con el símbolo de porcentaje se utiliza para buscar coincidencias de patrones."

Eliminación en Cascada

Cuando trabajamos con tablas relacionadas, es común que los registros de una tabla dependan de los registros de otra. Si eliminamos un registro que tiene dependencias, puede que queramos eliminar automáticamente los registros relacionados. Esto se logra con la eliminación en cascada, que se define al crear las relaciones entre las tablas.

Por ejemplo, si hemos definido una relación entre users y orders, podríamos configurar la eliminación en cascada de esta forma:

sql
"En este ejemplo, hemos creado una tabla orders que tiene una clave externa que referencia a la tabla users. La opción ON DELETE CASCADE asegura que, si eliminamos un usuario, también se eliminarán automáticamente todos los pedidos asociados a ese usuario."

Soft Delete: Eliminación Lógica

En lugar de eliminar permanentemente los registros de una tabla, muchas aplicaciones utilizan una técnica conocida como soft delete o eliminación lógica. Con esta técnica, en lugar de borrar el registro, simplemente marcamos el registro como eliminado usando un campo adicional, como deleted_at o is_deleted.

Ejemplo de Soft Delete

sql
"En este ejemplo, en lugar de eliminar el registro de la tabla users, simplemente lo estamos marcando como eliminado estableciendo el valor del campo is_deleted a TRUE."

La ventaja de esta técnica es que podemos "restaurar" el registro en caso de que sea necesario, simplemente actualizando el valor del campo is_deleted.

Resumen

En este capítulo, hemos aprendido a utilizar el comando DELETE para eliminar registros de una base de datos SQL. Vimos cómo utilizar la cláusula WHERE para evitar eliminar todos los registros, cómo implementar eliminación en cascada, y la alternativa de soft delete para conservar los datos. En el próximo capítulo, exploraremos cómo manejar transacciones en SQL para asegurar la integridad de los datos durante operaciones complejas.


Pregúntame lo que sea