Inicio / Blog / Datos

SQL desde cero: guía práctica para tu primera consulta

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.

Ver el curso

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 WHERE para filtrar un resultado agregado: si necesitas filtrar después de un GROUP BY (por ejemplo, "solo ciudades con más de $10M vendidos"), la palabra correcta es HAVING, no WHERE.
  • Olvidar la condición del JOIN: un JOIN sin ON correcto 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 como TRIM y LOWER.

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.