Mi primera consulta SQL fue un desastre. Tenía una tabla con 10,000 clientes y quería los que hubieran comprado en el último mes. Escribí SELECT * FROM clientes WHERE fecha > '2023-01-01' y me devolvió todos, porque la fecha estaba en otro formato. Perdí una tarde entera. Desde entonces, aprendí que las consultas SQL no son magia: son lógica pura y un par de reglas básicas.
Aprende a redactar tus primeras consultas SQL sin morir en el intento

Escribe consultas SQL básicas usando SELECT para elegir columnas, FROM para indicar la tabla y WHERE para filtrar filas. Con SELECT nombre, edad FROM usuarios WHERE edad > 18 obtienes los mayores de edad.
"Empecé a trabajar como analista de datos en una startup pequeña. El primer día, mi jefe me pidió un informe de ventas del trimestre. Escribí la consulta, la ejecuté y me dio 0 filas. Resulta que había usado comillas dobles en lugar de simples para la fecha. Me sentí un idiota, pero ese error me enseñó más que cualquier tutorial."
La mayoría de la gente piensa que SQL es difícil porque no saben por dónde empezar. Los tutoriales suelen saltar a cosas complejas como subconsultas o índices, cuando lo único que necesitas al principio es SELECT, FROM y WHERE. El problema real es que la sintaxis es muy sensible: una coma mal puesta o un tipo de dato incorrecto y todo falla. Pero una vez que entiendes el patrón, es como armar un rompecabezas con piezas fijas.
🔧 5 Soluciones
Aprende a seleccionar columnas específicas de una tabla.
-
1
Escribe SELECT seguido de las columnas — Por ejemplo: SELECT nombre, email FROM clientes. Si quieres todas las columnas, usa SELECT *, pero no abuses porque ralentiza la consulta.
-
2
Indica la tabla con FROM — Después de SELECT, escribe FROM nombre_tabla. Asegúrate de que el nombre de la tabla exista en la base de datos. Ejemplo: SELECT * FROM productos.
-
3
Ejecuta la consulta — En herramientas como MySQL Workbench o DBeaver, selecciona el texto de la consulta y haz clic en ejecutar (o presiona Ctrl+Enter). Verás los resultados en una tabla.
Aplica condiciones para obtener solo los datos que necesitas.
-
1
Agrega WHERE después de FROM — Ejemplo: SELECT * FROM pedidos WHERE total > 100. Esto devuelve pedidos con total mayor a 100.
-
2
Usa operadores de comparación — Los más comunes: = (igual), <>, != (diferente), <, >, <=, >=. Para texto, usa comillas simples: WHERE ciudad = 'Madrid'.
-
3
Combina condiciones con AND y OR — Ejemplo: SELECT * FROM empleados WHERE salario > 30000 AND departamento = 'Ventas'. Usa paréntesis para agrupar: WHERE (edad > 30 OR antiguedad > 5) AND activo = 1.
-
4
Usa IN para múltiples valores — En lugar de varios OR, escribe: WHERE ciudad IN ('Madrid', 'Barcelona', 'Valencia'). Es más limpio.
Organiza los datos de forma ascendente o descendente.
-
1
Escribe ORDER BY al final de la consulta — Ejemplo: SELECT nombre, precio FROM productos ORDER BY precio. Por defecto ordena ascendente (menor a mayor).
-
2
Especifica el orden con ASC o DESC — Para orden descendente: ORDER BY precio DESC. Para ascendente puedes omitir ASC o escribirlo: ORDER BY precio ASC.
-
3
Ordena por varias columnas — Ejemplo: ORDER BY apellido ASC, nombre ASC. Primero ordena por apellido, y si hay empate, por nombre.
Combina datos de dos tablas usando una clave común.
-
1
Identifica la clave común entre tablas — Por ejemplo, tabla 'pedidos' tiene 'cliente_id' y tabla 'clientes' tiene 'id'. Esa es la clave para unirlos.
-
2
Escribe INNER JOIN seguido de la tabla a unir — Ejemplo: SELECT * FROM pedidos INNER JOIN clientes ON pedidos.cliente_id = clientes.id. Esto devuelve solo los pedidos que tienen cliente correspondiente.
-
3
Selecciona columnas específicas con alias — Para evitar ambigüedad, usa alias: SELECT p.id, c.nombre FROM pedidos p INNER JOIN clientes c ON p.cliente_id = c.id. Así sabes de qué tabla viene cada columna.
-
4
Prueba LEFT JOIN para incluir filas sin coincidencia — LEFT JOIN devuelve todas las filas de la tabla izquierda (pedidos) aunque no tengan cliente. Útil para encontrar pedidos huérfanos.
Resume datos calculando sumas, promedios, etc., por grupos.
-
1
Escribe GROUP BY después de WHERE — Ejemplo: SELECT ciudad, COUNT(*) FROM clientes GROUP BY ciudad. Esto cuenta cuántos clientes hay en cada ciudad.
-
2
Usa funciones de agregado — Las más comunes: COUNT(), SUM(), AVG(), MAX(), MIN(). Ejemplo: SELECT departamento, AVG(salario) FROM empleados GROUP BY departamento.
-
3
Filtra grupos con HAVING — HAVING es como WHERE pero para grupos. Ejemplo: SELECT ciudad, COUNT(*) FROM clientes GROUP BY ciudad HAVING COUNT(*) > 10. Solo muestra ciudades con más de 10 clientes.
-
4
Ordena los resultados agrupados — Puedes combinar GROUP BY con ORDER BY: SELECT ciudad, COUNT(*) as total FROM clientes GROUP BY ciudad ORDER BY total DESC.
Si llevas un par de semanas practicando y todavía no entiendes cómo funcionan los JOIN o por qué tu consulta devuelve datos duplicados, busca un curso estructurado o un mentor. También si necesitas optimizar consultas lentas o trabajar con bases de datos muy grandes, un profesional te ahorrará horas de prueba y error.
Aprender SQL no es cuestión de memoria, es cuestión de práctica. Nadie escribe consultas perfectas a la primera. Yo todavía cometo errores de sintaxis después de años usándolo. Lo importante es entender la lógica: SELECT qué, FROM dónde, bajo qué condiciones. Una vez que domines eso, el resto (JOIN, subconsultas, funciones) es solo extender el mismo patrón. Empieza con algo sencillo hoy: abre tu base de datos favorita y escribe SELECT * FROM alguna_tabla. Verás que no es para tanto.
💬 Comparte tu Experiencia
¡Comparte tu experiencia — ayuda a otros con el mismo reto!