Hasta ahora hemos aprendido a consultar y analizar datos en SQL.
Pero llega el momento en que debemos modificarlos, ya sea para agregar nuevos registros, corregir información o eliminar datos obsoletos.
Aquí es donde entra en juego el DML (Data Manipulation Language), el subconjunto de SQL que permite insertar, actualizar y eliminar datos dentro de una tabla.
En este artículo aprenderás a usar INSERT, UPDATE y DELETE de forma segura y ordenada, con ejemplos prácticos que puedes ejecutar directamente en 👉 db-fiddle.com.
También verás buenas prácticas y diferencias entre motores como PostgreSQL y SQL Server.
1. Qué es el DML (Data Manipulation Language)
El DML forma parte del núcleo de SQL y se encarga de modificar la información contenida en las tablas, sin alterar su estructura.
Sus tres comandos principales son:
| Comando | Función principal | Ejemplo común |
|---|---|---|
INSERT | Agregar nuevos registros | Insertar empleados o clientes nuevos |
UPDATE | Modificar datos existentes | Ajustar salarios, corregir direcciones |
DELETE | Eliminar registros | Quitar registros duplicados o antiguos |
2. INSERT – Agregar nuevos registros
INSERT INTO empleados (nombre, puesto, salario, id_departamento)
VALUES ('Laura Sánchez', 'Analista de Datos', 70000, 3); También puedes insertar varios registros a la vez:
INSERT INTO empleados (nombre, puesto, salario, id_departamento)
VALUES
('Andrés Molina', 'Diseñador UX', 68000, 2),
('María Castro', 'QA Tester', 65000, 4); 💡 Buenas prácticas:
- Siempre especifica los nombres de columnas (no uses
INSERT INTO tabla VALUES (...)sin columnas). - Asegúrate de que los tipos de datos coincidan.
- Si hay claves foráneas, verifica que el valor exista en la tabla relacionada.
3. UPDATE – Modificar datos existentes
UPDATE empleados
SET salario = salario * 1.10
WHERE id_departamento = 4; ➡️ Este ejemplo aumenta 10% el salario de todos los empleados del departamento 4.
⚠️ ¡Cuidado!
Si olvidas el WHERE, actualizarás todos los registros de la tabla.
-- Evita esto:
UPDATE empleados SET salario = 0; -- ❌ Afecta a todos los registros 💡 Buenas prácticas:
- Siempre incluye un
WHERE. - Antes de ejecutar, prueba el filtro con un
SELECT:
SELECT * FROM empleados WHERE id_departamento = 4; 4. DELETE – Eliminar registros
DELETE FROM empleados
WHERE salario < 40000; ➡️ Borra a los empleados con salario menor a 40,000.
Y al igual que UPDATE, nunca olvides el WHERE:
DELETE FROM empleados; -- ❌ Borra todos los registros de la tabla
5. Diferencias entre motores SQL
| Motor | Particularidades de DML |
|---|---|
| PostgreSQL | Soporta RETURNING para ver registros afectados (DELETE FROM empleados WHERE salario < 40000 RETURNING *;). |
| SQL Server | Usa OUTPUT para resultados similares a RETURNING. |
| MySQL / SQLite | Implementan DML estándar; RETURNING se añadió recientemente en MySQL 8.0+. |
6. DML dentro de una transacción
Cuando modificas datos, conviene hacerlo dentro de una transacción para poder revertir errores.
BEGIN;
UPDATE empleados
SET salario = salario + 2000
WHERE id_departamento = 3;
DELETE FROM empleados
WHERE salario > 150000;
COMMIT; Si algo falla:
ROLLBACK;
7. Buenas prácticas DML
✅ Usa transacciones para operaciones sensibles.
✅ Haz siempre respaldo antes de actualizaciones masivas.
✅ Usa RETURNING (PostgreSQL) o OUTPUT (SQL Server) para verificar resultados.
✅ Evita ejecutar DML en tablas completas sin filtros.
Conclusión
El DML es la herramienta que convierte a SQL en algo más que un lenguaje de consulta:
es el poder de crear, cambiar y mantener los datos que sustentan tu negocio.
Dominar INSERT, UPDATE y DELETE es el primer paso hacia un trabajo profesional y seguro con tus bases de datos.