Por Qué el SQL Sigue Mereciendo Práctica Deliberada
SQL tiene una reputación extraña entre los lenguajes que los desarrolladores realmente usan. Nadie pone "práctica de repetición espaciada" al lado de SQL como podría hacerlo con algoritmos o un framework nuevo. La mayoría aprende lo justo para que sus primeras consultas funcionen, y trata todo lo demás como "lo busco cuando lo necesite".
Eso funciona, casi siempre, hasta que no — un incidente de producción a las 2am, una migración de datos bajo presión de tiempo, una entrevista compartiendo pantalla donde el autocompletado no está para salvarte. Ahí suele ser la primera vez que alguien se da cuenta de que JOIN, GROUP BY y una subconsulta correlacionada nunca fueron realmente fluidas, solo familiares.
Familiar no es lo mismo que fluido
Hay una brecha real entre reconocer un JOIN cuando lo ves y poder escribir el correcto, desde una consulta en blanco, bajo una restricción real. La mayoría de quienes "saben SQL" en realidad están reconociendo patrones de consultas que ya vieron antes — lo cual funciona bien hasta que el problema frente a ellos no coincide con ningún patrón memorizado.
Por qué las herramientas de IA empeoran esto, no lo mejoran
El autocompletado para SQL es inusualmente bueno, porque SQL es inusualmente regular — los nombres de tablas y columnas prácticamente escriben la consulta por ti. Esa regularidad es exactamente lo que hace fácil apoyarse en una sugerencia en vez de razonar de verdad qué está haciendo un GROUP BY, o por qué un LEFT JOIN devuelve NULL donde un INNER JOIN habría descartado filas en silencio. La habilidad se erosiona en silencio porque las consultas siguen funcionando.
En qué vale la pena ser realmente fluido
- Agregación y agrupamiento. COUNT, SUM, AVG, GROUP BY y HAVING aparecen en casi toda consulta real que no sea un ejemplo de juguete, y HAVING contra WHERE es un punto de confusión genuinamente común que vale la pena aclarar de una vez por todas.
- JOINs, incluyendo cuando no coinciden. Poder predecir qué devuelve un LEFT JOIN cuando no hay coincidencia, sin ejecutarlo primero, es la diferencia entre depurar un problema de datos en segundos o quedarte veinte minutos mirando NULL inesperados.
- Subconsultas, correlacionadas o no. En el momento en que una subconsulta necesita hacer referencia a una columna de la consulta externa, gran parte de la confianza de "sé SQL" se evapora en silencio.
- Funciones de ventana. Rankings, totales acumulados y "compara esta fila con el resto de su grupo" son pedidos extremadamente comunes en trabajo real con datos, y son lo primero que se salta la mayoría del conocimiento de SQL autodidacta.
Practicar SQL igual que practicarías cualquier otra cosa
La solución no es leer otro artículo sobre la sintaxis de JOIN — es escribir consultas desde un editor en blanco contra un problema real, que te digan exactamente por qué una consulta está mal cuando lo está, y hacerlo las veces suficientes para que razonarlo deje de costar esfuerzo. El mismo enfoque de práctica deliberada que funciona para recuperar JavaScript o Python oxidado funciona igual de bien aquí.
Ese tipo de práctica — escribir una consulta real, descubrir de inmediato por qué está mal, y volver a hacerlo — es exactamente lo que la sección de SQL de SoloScript está construida para hacer: de SELECT y WHERE hasta funciones de ventana y CTE, calificado ejecutando de verdad tu consulta contra una base de datos real, no comparándola con un texto esperado.
Gratis, sin necesidad de cuenta. Unos minutos al día bastan para sentir la diferencia.
Empezar a practicar