CodeGym /Cursos /SQL SELF /Sintaxis básica de SELECT: estructura y componentes de la...

Sintaxis básica de SELECT: estructura y componentes de la consulta

SQL SELF
Nivel 1 , Lección 4
Disponible

Bueno, ya empezamos a meternos con SELECT, el comando de SQL que sirve para sacar datos de una tabla o varias tablas en la base de datos. Es como el F5 del navegador pero para la base de datos: "enséñame lo que tienes". La estructura más simple de la consulta es así:


        SELECT columna1, columna2, … columnaN
        FROM tabla
        

Dónde:

  • SELECT — es la palabra clave con la que empieza la consulta.
  • columna1, columna2, ... — es la lista de columnas de las que quieres sacar datos.
  • FROM tabla — indica la tabla de la que se sacan los datos.

¡Vamos a dividir esto en partes con ejemplos!

Estructura principal del comando SELECT

Selección de todas las columnas. Si quieres ver todos los datos de la tabla, puedes usar el asterisco *. Por ejemplo, tenemos la tabla students:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

Para sacar todos los datos de esta tabla, usa la consulta:


        SELECT * FROM students
        

Y el resultado será este conjunto de columnas y filas:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

O sea — toda la tabla, tal como pediste.

Selección de columnas concretas

Obviamente, la mayoría de las veces solo necesitas sacar las columnas que te interesan, para no cargar datos de más. Por ejemplo, quieres saber los nombres y la edad de los estudiantes. Entonces tienes que escribir esta consulta:


        SELECT name, age FROM students
        

El resultado de la consulta será así:

name age
Alex 17
Maria 19
Otto 21

¿Ves la diferencia? Cuando eliges solo las columnas que necesitas, la consulta va más rápido y queda más limpia.

Orden de ejecución de la consulta

Las consultas SQL son un poco traicioneras: aunque escribimos SELECT al principio, en realidad primero se procesa la parte FROM y solo después se devuelve el resultado. Así es como funciona por dentro:

  1. Se procesa la tabla en FROM: el servidor encuentra la tabla indicada.
  2. Se aplican condiciones a las filas (si hay): se eligen solo las filas que cumplen las condiciones.
  3. Se seleccionan las columnas indicadas: de las filas que quedan se sacan los datos que necesitas.

O sea, en este comando:


        SELECT name FROM students
        

Primero el servidor encuentra la tabla students, luego lee la columna name, y solo después devuelve el resultado.

Ejemplos prácticos

Ejemplo nº1: Lista de estudiantes.

Imagina que eres el admin de la uni y necesitas los nombres de todos los estudiantes. Consulta:

SELECT name
FROM students;

Resultado:

name
Alex
Maria
Otto

Ejemplo nº2: Añadimos edad e id.

Ahora necesitas id, nombres y edad. Solo añade un par de columnas más:

SELECT name, age, id
FROM students;

Resultado:

name age id
Alex 17 1
Maria 19 2
Otto 21 3

Ejemplo nº3: Añadimos expresiones.

Supón que quieres saber cuántos años les quedan a tus estudiantes para ser mayores de edad.

Entonces en vez de age tienes que poner 21-age. Aquí, por simplicidad, suponemos que la mayoría de edad es a los 21:

SELECT name, 21-age
FROM students;

Y este será el resultado:

name 21-age
Alex 4
Maria 2
Otto 0

Vas a aprender más sobre expresiones en las siguientes lecciones. Ahora vamos a ver los errores con los que seguro ya te has topado.

Errores típicos al usar SELECT

Errores de tipeo en nombres de tablas y columnas.

Uno de los errores más comunes es cuando el nombre de la tabla o columna está mal escrito.

Si en la base de datos no existe la tabla studentsz, te va a salir un error:

SELECT name
FROM studentsz; -- Error: ¡no existe la tabla!

O si la columna se llama name, pero pusiste student_name, otra vez error:

SELECT student_name -- Error: ¡no existe la columna!
FROM students;

La solución es fácil: revisa siempre los nombres de tablas y columnas.

Errores de sintaxis en la consulta.

Otro error típico — te olvidaste de poner la coma al listar las columnas:

SELECT name age id -- Error: ¡falta la coma!
FROM students; 

Pero tranqui. La consulta SELECT solo saca datos. Cualquier error en este tipo de consulta no puede dañar los datos de tu base. Pero cuando lleguemos a las consultas que modifican datos — ahí los errores sí que pueden costar caro.

Usar * en vez de columnas concretas.

Cuando usas *, sacas TODOS los datos, incluso los que no necesitas. Eso baja el rendimiento y puede ser un problema con tablas grandes. Elige siempre solo las columnas que realmente necesitas.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION