SQL (Structured Query Language) es el lenguaje que se usa para hablar con una base de datos: pedirle información, filtrarla, cruzarla con otras tablas y resumirla. Es prácticamente universal — el mismo SQL básico funciona (con pequeñas variaciones) en PostgreSQL, SQL Server, MySQL y la mayoría de bases de datos relacionales del mercado.
La estructura básica: SELECT — FROM — WHERE
Toda consulta parte de tres piezas: qué columnas quieres ver, de qué tabla, y con qué filtro.
SELECT nombre, ciudad, monto
FROM ventas
WHERE ciudad = 'Bogotá';
Esto se lee de forma casi literal: "selecciona nombre, ciudad y monto, de la tabla ventas, donde la ciudad sea Bogotá".
Ordenar y limitar resultados
SELECT nombre, monto
FROM ventas
ORDER BY monto DESC
LIMIT 10;
ORDER BY ... DESC ordena de mayor a menor (usa ASC para menor a
mayor), y LIMIT corta el resultado a las primeras N filas — perfecto para "los 10
clientes que más compraron".
Combinar condiciones
SELECT *
FROM ventas
WHERE ciudad = 'Bogotá' AND monto > 500000;
De consultas básicas a optimización avanzada
El curso de SQL Server + PostgreSQL cubre ambos motores desde cero, con 13 módulos y certificado.
JOIN — cruzar información de varias tablas
En una base de datos real, la información casi nunca vive en una sola tabla: hay una tabla de
"ventas" y otra de "clientes", relacionadas por un id_cliente. JOIN
permite traer datos de ambas en una sola consulta:
SELECT v.fecha, v.monto, c.nombre
FROM ventas v
JOIN clientes c ON v.id_cliente = c.id
WHERE v.monto > 500000;
Agregaciones: GROUP BY
Para resumir datos (total por ciudad, promedio por vendedor, conteo por categoría),
GROUP BY agrupa las filas y una función de agregación las resume:
SELECT ciudad, SUM(monto) AS total_vendido
FROM ventas
GROUP BY ciudad
ORDER BY total_vendido DESC;
Errores comunes al empezar
- Usar
WHEREpara filtrar un resultado agregado: si necesitas filtrar después de unGROUP BY(por ejemplo, "solo ciudades con más de $10M vendidos"), la palabra correcta esHAVING, noWHERE. - Olvidar la condición del
JOIN: unJOINsinONcorrecto genera un producto cartesiano — cada fila de una tabla combinada con cada fila de la otra, multiplicando resultados de forma incorrecta. - Comparar texto sin cuidar mayúsculas/espacios:
'Bogotá'y'bogotá '(con espacio) no son iguales para la base de datos — hay que limpiar los datos o usar funciones comoTRIMyLOWER.
Siguiente paso
Con SELECT, WHERE, JOIN y GROUP BY ya se
resuelve la mayoría de consultas del día a día. El siguiente nivel — subconsultas, funciones
de ventana, índices y optimización de consultas lentas — es justo lo que cubre el curso de
SQL Server + PostgreSQL en ZENTIX.