CodeGym /Cursos /SQL SELF /Errores típicos al usar SELECT

Errores típicos al usar SELECT

SQL SELF
Nivel 3 , Lección 3
Disponible

Como en cualquier otra área de la programación, trabajando con SELECT los errores son inevitables. Incluso los desarrolladores más experimentados a veces meten bugs en sus consultas SQL. Hoy vamos a ver los errores típicos al usar SELECT, por qué ocurren y cómo evitarlos.

SQL es un lenguaje que sigue reglas sintácticas muy estrictas. Si te olvidas una coma, un operador o pones las palabras en el orden incorrecto, la base de datos te va a levantar una "bandera roja" enseguida.

Palabras clave olvidadas

El error más común es simplemente olvidarse de una de las palabras clave obligatorias. Por ejemplo, intentemos ejecutar este comando:

SELECT name age FROM students;

¿Falta algo, verdad? Aquí falta la palabra clave , entre los campos name y age. Corregimos el error:

SELECT name, age FROM students;

La razón de estos errores es clara: o estás aprendiendo a escribir consultas, o simplemente tienes prisa. ¡SQL no tolera las prisas!

Errores en nombres de columnas y tablas

Los comandos SQL son sensibles a los nombres correctos de columnas y tablas. Probemos esta consulta:

SELECT naem, agge FROM studnts;

La base de datos ve esto como un sinsentido: las columnas naem y agge, igual que la tabla studnts, simplemente no existen. Corregimos:

SELECT name, age FROM students;

Consejo: Si no estás seguro de los nombres, usa el comando \d table_name en psql o la interfaz de pgAdmin para revisar la estructura de la tabla.

Comillas olvidadas

Los nombres de columnas y tablas que incluyen espacios u otros caracteres especiales deben ir entre comillas dobles. Ejemplo:

SELECT "first name", age FROM students;

Si te olvidas las comillas, SQL no va a entender lo que quieres decir y te dará un error.

Errores lógicos: cuando todo funciona, pero no como esperabas

A veces las consultas se ejecutan bien, pero el resultado es "raro". Estos son errores lógicos. Son más traicioneros porque la base de datos no te va a avisar de que algo salió mal.

  1. Uso incorrecto de operadores de comparación. Imagina que quieres seleccionar a todos los estudiantes mayores de 18 años:
SELECT * FROM students WHERE age > 18;

Ahora probemos la consulta con otro operador:

SELECT * FROM students WHERE age = 18;

Esta consulta solo va a devolver a los que tienen exactamente 18 años. Si esperabas incluir a todos los estudiantes mayores de 18, esto es un error lógico.

Consejo: Revisa bien estos detalles. Si tienes dudas, empieza con selecciones pequeñas (por ejemplo, usando LIMIT).

Errores al combinar condiciones

Veamos un ejemplo:

SELECT * FROM students WHERE age > 18 OR grade = 'A' AND city = 'New York';

Esta consulta puede devolver estudiantes que no viven en Nueva York. ¿Por qué? Porque el orden de los operadores lógicos es así: SQL primero procesa AND y luego OR. Reescribimos la consulta usando paréntesis:

SELECT * FROM students WHERE (age > 18 OR grade = 'A') AND city = 'New York';

Ahora sí está correcto.

Falta de filtrado

A veces una consulta como SELECT * FROM students; devuelve un montón de datos, aunque buscabas algo concreto, por ejemplo, estudiantes de una ciudad específica. ¿La solución? Añade filtros usando WHERE:

SELECT * FROM students WHERE city = 'New York';

Problemas de rendimiento

Cuando las consultas trabajan con muchos datos, es súper importante optimizarlas. Vamos a ver los errores típicos que bajan el rendimiento.

Las consultas tipo SELECT * pueden ser cómodas durante el desarrollo, pero en la vida real afectan mal al rendimiento. Si solo necesitas ciertas columnas, indícalas.

-- Malo:
SELECT * FROM students;

-- Bueno:
SELECT name, age FROM students;

¿Por qué es importante? SELECT * saca todas las columnas, aunque no las uses. Eso aumenta la cantidad de datos transferidos.

Consejos prácticos: cómo evitar errores

Las consultas SQL pueden ser más fiables si sigues algunos consejos:

  • Revisa la sintaxis antes de ejecutar: usa una IDE o las sugerencias de pgAdmin, que pueden avisarte de errores antes de tiempo.
  • Empieza con selecciones pequeñas. Añade LIMIT 5 o LIMIT 10 para probar.
  • Usa comentarios para entender qué hace la consulta:
    -- Sacar todos los estudiantes mayores de 18 años
    SELECT name, age FROM students WHERE age > 18;
    
  • Prueba con diferentes datos para comprobar que la lógica es correcta.
  • No abuses de SELECT *, sobre todo en tablas grandes.

Trampas en entrevistas

Una de las tareas populares en entrevistas de SQL es encontrar errores en una consulta. Por ejemplo:

SELECT name FROM employees WHERE salary > 50000 ORDER BY department;

Piénsalo: ¿esta consulta es lógicamente correcta? Si usas ORDER BY, probablemente la ordenación debería ser por salario:

SELECT name FROM employees WHERE salary > 50000 ORDER BY salary DESC;

Trabajar con SELECT es la base de SQL, y los errores aquí son inevitables al principio. Pero con el tiempo vas a escribir consultas tan fácil como chatear en WhatsApp, porque los programadores de verdad practican no solo con gatos, sino también con bases de datos. 😉

2
Tarea
SQL SELF, nivel 3, lección 3
Bloqueada
Corrección de un error de sintaxis
Corrección de un error de sintaxis
2
Tarea
SQL SELF, nivel 3, lección 3
Bloqueada
Error lógico en una consulta con filtrado y ordenación
Error lógico en una consulta con filtrado y ordenación
1
Cuestionario/control
Ordenación de datos, nivel 3, lección 3
No disponible
Ordenación de datos
Ordenación de datos
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION