HDP115

Comandos DML en SQL

Aprende sobre los comandos de Data Manipulation Language (DML) en SQL para manipular y consultar datos en tu base de datos.

CE

Cristian Escalante

Última actualización: 11 de mayo de 2025

sql
programación
desarrollo

Comandos DML en SQL

El Lenguaje de Manipulación de Datos (DML - Data Manipulation Language) es un subconjunto de SQL utilizado para manipular los datos almacenados en las tablas de bases de datos. Los comandos DML se utilizan para recuperar, insertar, modificar y eliminar datos.

SELECT

El comando SELECT se utiliza para consultar y recuperar datos de una o más tablas. Es el comando DML más utilizado y versátil.

Sintaxis básica

SELECT columna1, columna2, ...
FROM nombre_tabla
WHERE condición
GROUP BY columna
HAVING condición_grupo
ORDER BY columna [ASC|DESC];

Consulta de todas las columnas

SELECT * FROM empleados;

Consulta de columnas específicas

SELECT nombre, apellido, salario
FROM empleados;

Consulta con condición WHERE

SELECT nombre, apellido, departamento
FROM empleados
WHERE salario > 50000;

Consulta con ORDER BY

SELECT nombre, apellido, fecha_contratacion
FROM empleados
ORDER BY fecha_contratacion DESC;

Consulta con funciones agregadas

SELECT departamento, COUNT(*) as total_empleados, AVG(salario) as salario_promedio
FROM empleados
GROUP BY departamento
HAVING COUNT(*) > 5;

Consulta con JOIN

SELECT e.nombre, e.apellido, d.nombre_departamento
FROM empleados e
JOIN departamentos d ON e.departamento_id = d.id;

INSERT

El comando INSERT se utiliza para añadir nuevos registros a una tabla.

Insertar un registro completo

INSERT INTO empleados (id, nombre, apellido, departamento_id, salario)
VALUES (101, 'Juan', 'Pérez', 3, 45000);

Insertar múltiples registros

INSERT INTO empleados (nombre, apellido, departamento_id, salario)
VALUES 
('María', 'González', 2, 55000),
('Carlos', 'Rodríguez', 3, 48000),
('Ana', 'Martínez', 1, 60000);

Insertar datos desde otra tabla

INSERT INTO empleados_backup
SELECT * FROM empleados
WHERE fecha_contratacion < '2023-01-01';

UPDATE

El comando UPDATE se utiliza para modificar los datos existentes en una tabla.

Actualizar un registro

UPDATE empleados
SET salario = 52000
WHERE id = 101;

Actualizar múltiples columnas

UPDATE empleados
SET departamento_id = 4, salario = salario * 1.1
WHERE departamento_id = 3;

Actualizar con subconsulta

UPDATE empleados
SET salario = salario * 1.05
WHERE departamento_id IN (SELECT id FROM departamentos WHERE categoria = 'Ventas');

DELETE

El comando DELETE se utiliza para eliminar registros de una tabla.

Eliminar un registro específico

DELETE FROM empleados
WHERE id = 101;

Eliminar múltiples registros

DELETE FROM empleados
WHERE departamento_id = 3;

Eliminar con subconsulta

DELETE FROM empleados
WHERE departamento_id IN (SELECT id FROM departamentos WHERE activo = FALSE);

Eliminar todos los registros

DELETE FROM empleados;

MERGE (UPSERT)

En algunos SGBD como Oracle, SQL Server y PostgreSQL (con sintaxis diferente), existe el comando MERGE que permite realizar operaciones INSERT, UPDATE o DELETE en una sola instrucción, dependiendo de si existe o no coincidencia en los datos.

MERGE INTO empleados_destino d
USING empleados_origen o
ON (d.id = o.id)
WHEN MATCHED THEN
    UPDATE SET d.nombre = o.nombre, d.salario = o.salario
WHEN NOT MATCHED THEN
    INSERT (id, nombre, apellido, departamento_id, salario)
    VALUES (o.id, o.nombre, o.apellido, o.departamento_id, o.salario);

Ejemplos prácticos

Gestión de inventario de una tienda

-- Crear tabla de productos
CREATE TABLE productos (
    producto_id INT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    descripcion TEXT,
    precio DECIMAL(10,2) NOT NULL,
    stock INT DEFAULT 0,
    categoria VARCHAR(50)
);

-- Insertar productos
INSERT INTO productos (producto_id, nombre, precio, stock, categoria)
VALUES 
(1, 'Laptop HP', 899.99, 20, 'Electrónica'),
(2, 'Monitor LG 27"', 299.99, 15, 'Electrónica'),
(3, 'Teclado Logitech', 49.99, 30, 'Accesorios');

-- Consultar productos por categoría
SELECT nombre, precio, stock
FROM productos
WHERE categoria = 'Electrónica'
ORDER BY precio DESC;

-- Actualizar stock después de ventas
UPDATE productos
SET stock = stock - 5
WHERE producto_id = 1;

-- Actualizar precios (aumento del 10%)
UPDATE productos
SET precio = precio * 1.1
WHERE categoria = 'Electrónica';

-- Eliminar productos agotados
DELETE FROM productos
WHERE stock <= 0;

-- Consulta con función agregada
SELECT categoria, COUNT(*) as total_productos, SUM(stock) as stock_total, AVG(precio) as precio_promedio
FROM productos
GROUP BY categoria;

Consideraciones importantes

  1. Transacciones: Los comandos DML pueden incluirse dentro de transacciones (BEGIN, COMMIT, ROLLBACK) para garantizar la integridad de los datos.
  2. Rendimiento: Las operaciones DML pueden afectar el rendimiento de la base de datos, especialmente cuando involucran grandes volúmenes de datos.
  3. Restricciones: Los comandos DML deben respetar las restricciones definidas en las tablas (PRIMARY KEY, FOREIGN KEY, CHECK, etc.).
  4. Concurrencia: En entornos multiusuario, es importante considerar los problemas de concurrencia al ejecutar comandos DML.
  5. Respaldo: Siempre es recomendable tener un respaldo antes de realizar operaciones DML masivas o críticas.
Comandos DDL en SQL
Aprende sobre los comandos de Data Definition Language (DDL)...
Desnormalización de Base de Datos
La desnormalización es el proceso intencional de introducir ...
Referencias
TutorialsPoint. SQL - Data Manipulation Language (DML). https://www.tutorialspoint.com/sql/sql-data-manipulation.htm
GeeksforGeeks. SQL DML Commands with Examples. https://www.geeksforgeeks.org/sql-dml-command/

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos de GIT

Aprende los conceptos básicos de GIT

Conceptos Básicos de Python

Aprende los conceptos básicos de Python

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025