En las dos entregas anteriores vimos cómo realizar las operaciones de inserción de datos y de actualización de esas inserciones. Ahora vamos a ver cómo eliminar datos una vez dejen de sernos útiles. Para ello el estándar SQL nos ofrece la instrucción DELETE.
La instrucción DELETE permite eliminar uno o múltiples registros. Incluso todos los registros de una tabla, dejándola vacía.
Su sintaxis es general es:
DELETE [FROM] NombreTabla
WHERE Condición
La condición, como siempre, define las condiciones que deben cumplir los registros que se desean eliminar. Se puede aplicar todo lo visto para esta cláusula anteriormente, incluidas las sub-consultas.
IMPORTANTE: Al igual que hemos visto para las instrucciones de actualización, es extremadamente importante definir bien la cláusula WHERE. De otro modo podríamos eliminar muchos registros que no pretendíamos o incluso, en un caso extremo, borrar de un plumazo todas las filas de la tabla. Es habitual que, por error, se omita esta cláusula y se pierdan datos de forma irreversible (salvo, claro está, que dispongamos de copias de seguridad o tengamos la posibilidad de retroceder una transacción abierta).
Como siempre, hagamos unos ejemplos con la base de datos de pruebas Northwind:
1.- Eliminar de la base de datos al empleado cuyo identificador interno es el 9:
DELETE Employees WHERE EmployeeID = 9
2.- Borrar a los clientes cuyo apellido (LastName) contenga la palabra "Desconocido":
DELETE Customers WHERE LastName LIKE '%Desconocido%'
3.- Eliminar todos los productos de la categoría bebidas ("beverages"):
DELETE Products WHERE CategoryID =
(SELECT CategoryID FROM Categories
WHERE CategoryName = 'Beverages')
4.- Eliminar todos los productos de la categoría bebidas ("beverages") cuyo precio unitario (UnitPrice) sea superior a 50:
DELETE Products WHERE CategoryID =
(SELECT CategoryID FROM Categories WHERE CategoryName = 'Beverages')
AND UnitPrice > 50
Como vemos, en estos dos últimos ejemplos hemos utilizado subconsultas dentro de la condición que determina los elementos a borrar, al igual que hicimos ya con la instrucción UPDATE.
Con esta instrucción, la más sencilla de utilizar, hemos visto las tres operaciones básicas sobre la base de datos que provocan cambios en los datos: inserción, actualización y borrado.