22nd Jan 2025 Lectura de 10 minutos Errores SQL de novato que pueden costarle tiempo Jakub Romanowski sql-basics data-analysis Índice 1. Olvidar las comas en las listas SELECT 2. Omitir Comillas 3. 3. Escribir mal los nombres de tablas y columnas 4. Problemas de formato: Mantenga su código limpio 5. Orden incorrecto de las sentencias 6. Uso Inadecuado de Alias 7. Errores de Sintaxis 8. Lógica de unión: Conceptos básicos 9. Manejo incorrecto de valores NULL 10. Asumiendo la Integridad de los Datos Como analista de datos junior, aprender SQL puede ser gratificante y desafiante a la vez. Te permite comprender los datos y extraer información valiosa, pero los errores comunes de SQL a menudo se convierten en obstáculos frustrantes. En esta guía, he recopilado los errores SQL más frecuentes de los novatos y cómo evitarlos, para ayudarte a ahorrar tiempo y mejorar tus habilidades de forma más eficaz. Al principio, aprender SQL era a menudo frustrante debido a errores menores que llevaban horas depurar. Simples descuidos, como una coma omitida o un alias mal colocado, podían desbaratar por completo todo un análisis y desanimarme. Sin embargo, estos retos resultaron ser valiosas lecciones que me enseñaron la importancia de la precisión y cómo escribir un código SQL más limpio y eficaz. Puedes leer mi historia en este artículo. Me he enfrentado a las mismas dificultades que muchos de vosotros. Esta guía está aquí para ayudarte a evitar errores comunes pero, lo que es más importante, se trata de aprender de estos errores y construir una confianza real en tus habilidades SQL. 1. Olvidar las comas en las listas SELECT Olvidar separar los nombres de las columnas con comas en una sentencia SELECT es un error frecuente que conduce a errores de sintaxis. Este error se produce porque SQL espera que cada columna esté claramente definida y las comas que faltan causan confusión al analizador sintáctico. Ejemplo: SELECT first_name last_name FROM employees; Error: Falta una coma entre first_name y last_name. SQL interpretará first_name last_name como first_name AS last_name, resultando en una asignación de alias no intencionada. Suponiendo que necesite tanto first_name como last_name en los resultados, esto causará un problema, ya que sólo se recuperará first_name con un alias. Solución: Compruebe siempre las sentencias SELECT para asegurarse de que todos los nombres de columna están separados por comas. Tómese su tiempo al escribir una consulta y considere la posibilidad de leerla en voz alta o desglosarla para comprobar si cada elemento está correctamente separado. Además, revise el resultado de la consulta para confirmar que todas las columnas que pretendía recuperar están presentes. Ejemplo corregido: SELECT first_name, last_name FROM employees; Lea más acerca de las sentencias SELECT en este impresionante artículo de Kateryna Koidan: How Do You Write a SELECT Statement in SQL (Cómo escribir una sentencia SELECT en SQL). 2. Omitir Comillas Cuando se trabaja con valores de texto, omitir las comillas puede conducir a errores de sintaxis. SQL requiere que los valores de texto vayan entre comillas simples ( ' ) para diferenciarlos de los nombres de columna u otras palabras clave. En otros lenguajes de programación, las cadenas suelen ir entre comillas dobles ( " ) pero, en SQL, las comillas dobles se utilizan para identificadores (por ejemplo, nombres de tablas o columnas). Ejemplo: SELECT * FROM employees WHERE department = Sales; Error: Faltan comillas alrededor de Sales. Sin las comillas, SQL interpreta Sales como un nombre de columna, lo que puede provocar un error si dicha columna no existe. Solución: Utilice siempre comillas simples alrededor de los valores de texto en sus consultas. De este modo, SQL tratará el valor como una cadena y no como una columna o palabra clave. Ejemplo corregido: SELECT * FROM employees WHERE department = 'Sales'; Otro Ejemplo: SELECT * FROM employees WHERE department = "Sales"; Error: El uso de comillas dobles en lugar de comillas simples hace que SQL interprete "Sales" como un identificador, lo que puede provocar un error si no existe una columna o tabla denominada Sales. Solución: Utilice siempre comillas simples alrededor de los valores de texto en sus consultas. Esto asegura que SQL trate el valor como una cadena, no como una columna o palabra clave. 3. 3. Escribir mal los nombres de tablas y columnas Escribir mal los nombres de tabla o columna es un error de sintaxis común. SQL no perdona los errores tipográficos: si el nombre de la tabla o columna no coincide exactamente, se producirá un error o resultados incorrectos. Ejemplo: SELECT first_nam FROM employees; Error: Error tipográfico first_name. Solución: Compruebe siempre los nombres de las tablas y columnas antes de ejecutar las consultas. El uso de un IDE o editor SQL que autocomplete los nombres puede ayudar a reducir este tipo de errores. También puede consultar con frecuencia el esquema de la base de datos para verificar los nombres correctos. Ejemplo corregido: SELECT first_name FROM employees; 4. Problemas de formato: Mantenga su código limpio Un formato de consulta deficiente dificulta la lectura y depuración del código. Esto es particularmente problemático cuando las consultas se vuelven complejas, involucrando múltiples tablas o condiciones. Un código limpio es esencial para una colaboración y resolución de problemas eficaces. Ejemplo: SELECT first_name,last_name,department FROM employees WHERE department='Sales' AND salary>50000; Error: Difícil de leer y depurar. Solución: Formatee sus consultas con sangrías y saltos de línea. Esto ayuda a dividir las diferentes cláusulas, haciendo que el código sea más fácil de entender de un vistazo. Un formato adecuado también facilita la detección de errores. Ejemplo con formato: SELECT first_name, last_name, department FROM employees WHERE department = 'Sales' AND salary > 50000; ¿Quieres escribir un buen código SQL? Lee 20 ejemplos de consultas SQL básicas para principiantes, de Tihomir Babic. 5. Orden incorrecto de las sentencias SQL requiere un orden específico para sus cláusulas, como SELECT, FROM, WHERE, y ORDER BY. Si el orden es incorrecto, SQL generará un error de sintaxis o se comportará de forma inesperada. Este es un problema común para los principiantes, que aún no están familiarizados con la estructura de las sentencias SQL. Ejemplo: FROM employees SELECT first_name, last_name; Error: Orden incorrecto de FROM y SELECT. Solución: Familiarícese con el orden correcto de las cláusulas SQL: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Practique escribiendo consultas en esta secuencia hasta que se convierta en algo natural. Ejemplo Corregido: SELECT first_name, last_name FROM employees; Más información al respecto en el artículo Orden de operaciones SQL de Ignacio L. Bisso. 6. Uso Inadecuado de Alias Los alias son útiles para acortar nombres largos de tablas, pero usarlos incorrectamente puede llevar a consultas confusas e ilegibles. Los alias deben hacer las consultas más fáciles de entender, no más difíciles. Ejemplo: SELECT a.first_name, a.last_name FROM employees a; Problema: El alias a no es descriptivo, lo que dificulta la comprensión de la consulta. Solución: Utilice alias significativos que transmitan claramente lo que representa la tabla. Por ejemplo, utilice emp para employees para mantener la claridad. Ejemplo corregido: SELECT emp.first_name, emp.last_name FROM employees emp; Más recursos sobre alias en SQL: Cómo usar alias en consultas SQL Cómo utilizar alias con Tipos de JOIN en SQL 7. Errores de Sintaxis Los errores de sintaxis, como olvidar cerrar los paréntesis o el uso incorrecto de las comas, son comunes entre los principiantes. Estos errores pueden hacer que una consulta no se ejecute o producir resultados inesperados. Ejemplo: SELECT COUNT(* FROM employees; Error: Falta el paréntesis de cierre después de *. Las funciones SQL como COUNT() requieren paréntesis de apertura y cierre. Solución: Utilice un IDE que resalte los problemas de sintaxis mientras escribe. Esto le ayudará a detectar paréntesis faltantes o comas mal colocadas. Revise siempre sus consultas antes de ejecutarlas. Ejemplo corregido: SELECT COUNT(*) FROM employees; Otro ejemplo SELECT * FROM employees WHERE department = 'Sales; Error: Falta la comilla simple de cierre después de Sales. Esto hace que SQL interprete el resto de la consulta como parte de la cadena. Solución: Utilice siempre pares coincidentes de comillas simples para los literales de cadena. Ejemplo corregido: SELECT * FROM employees WHERE department = 'Sales'; Tercer ejemplo SELECT name, order FROM orders; Error: order es una palabra clave reservada en SQL y no puede utilizarse como nombre de columna sin un tratamiento adecuado. Solución: Si debe utilizar una palabra clave reservada como nombre de columna, enciérrela entre comillas dobles ("orden") o corchetes ([orden]), según el dialecto SQL. Sin embargo, es mejor evitar por completo el uso de palabras reservadas como identificadores. Consulta corregida: SELECT name, "order" FROM orders; 8. Lógica de unión: Conceptos básicos Las uniones incorrectas suelen deberse a un malentendido de cómo funcionan los distintos tipos de uniones o a una colocación incorrecta de las condiciones de filtrado. Esto puede dar lugar a resultados incorrectos, datos que faltan o conjuntos de datos sobrecargados. Ejemplo SELECT * FROM orders JOIN customers; Error: Falta la condición ON para la unión. Sin una condición de unión, SQL no sabe cómo hacer coincidir las filas de las dos tablas. Solución: Especifique siempre una condición de unión utilizando la cláusula ON. Comprenda la diferencia entre INNER JOIN, LEFT JOIN, RIGHT JOIN, y FULL JOIN, y utilícelas según sea necesario. Ejemplo Corregido: SELECT * FROM orders JOIN customers ON orders.customer_id = customers.customer_id; ¿Quiere dominar Tipos de JOIN en SQL? Echa un vistazo a mi Guía completa de Tipos de JOIN en SQL. Este artículo cubre todo lo que necesitas saber sobre el uso de datos en tu consulta desde más de una tabla. 9. Manejo incorrecto de valores NULL Los valores NULL pueden ser difíciles de manejar, y asumir que NULL es lo mismo que cero o una cadena vacía es un error común. Esto puede dar lugar a agregaciones incorrectas o conclusiones engañosas. Ejemplo: SELECT * FROM employees WHERE department != NULL; Error: NULL no puede compararse utilizando operadores de comparación estándar. Solución: Utilice funciones como IS NULL o IS NOT NULL para manejar correctamente los valores de NULL. Además, utilice COALESCE() para sustituir NULL por un valor predeterminado cuando sea necesario. Ejemplo corregido: SELECT * FROM employees WHERE department IS NOT NULL; Más sobre NULLs: ¿Qué es un NULL en SQL? Cómo Encontrar el Siguiente Valor No NULL en SQL Cómo Usar Operadores de Comparación con NULLs en SQL ¿Qué es una Restricción NOT NULL en SQL? 10. Asumiendo la Integridad de los Datos Asumir que los datos están limpios sin validación es arriesgado. Los datos pueden contener duplicados, valores de NULL, o formatos incorrectos, lo que lleva a resultados de consulta incorrectos. Ejemplo: SELECT * FROM orders WHERE order_date > '2024-01-01'; Problema: Suponiendo que todas las fechas de pedido tienen el formato correcto y ninguna es NULL. Si order_date es del tipo DATE, la base de datos se asegurará de que los valores sean fechas válidas, pero aún podría haber valores NULL o casos extremos inesperados. Solución: Valide los datos antes del análisis. Compruebe si hay valores de NULL, duplicados y asegúrese de que el formato es coherente. Utilice comprobaciones o restricciones para garantizar la calidad de los datos. Ejemplo de validación: SELECT * FROM orders WHERE order_date IS NOT NULL AND order_date > '2024-01-01'; Evitar estos errores para mejorar la eficacia Cometer errores es una parte natural del aprendizaje, pero comprender y evitar los errores comunes de SQL le ayudará a convertirse en un analista de datos más eficaz. Escribir consultas legibles, utilizar una nomenclatura coherente, comprender las uniones y los valores de NULL, validar los datos y ser consciente de la sintaxis puede ahorrarle horas de frustración y trabajo repetido. Contar con los recursos adecuados puede marcar una diferencia significativa en su progreso. El tema SQL de la A a la Z en LearnSQL.es está diseñado para proporcionar esa orientación. Este tema incluye todo lo que necesita, desde los conceptos fundamentales hasta las técnicas avanzadas de SQL, con ejemplos prácticos y ejercicios que hacen que el aprendizaje sea práctico y atractivo. Además, ahora puede probarlo sin ningún riesgo. Sólo tiene que crear una cuenta gratuita y utilizar la versión de prueba gratuita para comprobar los primeros ejercicios. Comprueba cómo funciona nuestra plataforma y si es para ti, sin gastar ni un céntimo. ¡Inscríbete ahora y empieza a aprender SQL hoy mismo! Tags: sql-basics data-analysis