🧠 Guía Visual y Práctica de Comandos SQL: DML, Agregación y Joins
SQL (Structured Query Language) es el lenguaje por excelencia para gestionar bases de datos relacionales. Esta entrada reúne de forma visual, resumida y actualizada los principales comandos del lenguaje DML (Data Manipulation Language), así como técnicas avanzadas de agregación, subconsultas y combinaciones de tablas.
🛠️ COMANDOS DML (Data Manipulation Language)
- INSERT: Añade datos nuevos a una tabla.
- UPDATE: Modifica valores existentes.
- DELETE: Elimina filas.
- SELECT: Consulta registros.
- MERGE: Inserta o actualiza registros según condiciones.
🧨 ¡Cuidado!
Un DELETE sin WHERE borra todos los registros.
Un UPDATE sin SET es inválido.
Ejemplos básicos:
INSERT INTO productos (nombre, precio) VALUES ('Teclado', 20);
UPDATE productos SET precio = 25 WHERE nombre = 'Teclado';
DELETE FROM productos WHERE precio > 100;
📊 FUNCIONES DE AGREGACIÓN
Usadas con GROUP BY para resumir información:
COUNT(): Total de registros.AVG(): Promedio.SUM(): Suma.MIN()/MAX(): Mínimo / Máximo.STDEV(): Desviación estándar.
Ejemplo:
SELECT AVG(precio) AS PrecioMedio, COUNT(*) FROM productos;
📚 AGRUPACIÓN AVANZADA
Para filtrar resultados agregados:
- Se usa
HAVING(noWHERE). - Permite condiciones sobre funciones de agregación.
SELECT proveedor, COUNT(*)
FROM pedidos
GROUP BY proveedor
HAVING COUNT(*) > 10;
🔄 COMBINACIÓN DE TABLAS (JOINS)
Unen registros de varias tablas según relaciones lógicas:
| Tipo de JOIN | Descripción |
|---|---|
INNER JOIN | Coincidencias en ambas tablas |
LEFT JOIN | Todos los de la izquierda + coincidencias |
RIGHT JOIN | Todos los de la derecha + coincidencias |
FULL OUTER JOIN | Todos los registros de ambas |
CROSS JOIN | Producto cartesiano (todas las combinaciones) |
SELECT * FROM clientes c
INNER JOIN pedidos p ON c.id = p.cliente_id;
🔎 SUBCONSULTAS
Se pueden usar en SELECT, WHERE, HAVING, etc.
SELECT nombre FROM productos
WHERE precio > (SELECT AVG(precio) FROM productos);
✅ Para que funcionen correctamente:
- Las columnas deben ser del mismo tipo.
- La subconsulta debe devolver una única fila si se compara con
=,>, etc. - Se pueden usar operadores como
IN,ANY,EXISTS.
♻️ COMBINACIÓN Y FILTRADO DE CONSULTAS
| Operador | Función |
|---|---|
UNION | Une resultados sin duplicados |
UNION ALL | Une con duplicados |
INTERSECT | Coincidencias entre dos consultas |
EXCEPT | Diferencia entre dos consultas |
📌 FUNCIONES DE RANGO Y VENTANA
Usadas para análisis avanzados de filas:
ROW_NUMBER() OVER (ORDER BY salario DESC)
RANK() OVER (PARTITION BY departamento ORDER BY salario)
Estas funciones permiten clasificar, rankear y distribuir filas dentro de particiones del conjunto de resultados.
⚙️ INTEGRIDAD REFERENCIAL
Control del comportamiento en actualizaciones/borrados:
ON DELETE CASCADEON UPDATE SET NULLSET DEFAULT
🎓 RESUMEN VISUAL DEL FLUJO DE UNA CONSULTA
SELECT columnas
FROM tabla
[WHERE condiciones]
[GROUP BY columnas]
[HAVING condiciones agregadas]
[ORDER BY columna ASC|DESC];
🖼️ Visualiza y Descarga el Resumen
👉 Descargar Guía Visual de SQL en Alta Resolución
🚀 Recomendaciones
- Practica con bases de datos reales (como Chinook o Sakila).
- Usa herramientas como SQLite, MySQL o PostgreSQL.
- Combina teoría con práctica diaria.
¿Te ha resultado útil esta guía?
🔔 Suscríbete a Anacrolibrum para más contenido técnico y divulgativo sobre bases de datos, programación y ciencia de datos.


Deja un comentario