Lección 3 - Consultas II (SQL SELECT FROM WHERE)

Curso SQL para principiantes


En la lección anterior hemos construido con éxito nuestra primera consulta:

Código: Seleccionar todo
select NOMBRE , APELLIDOS
  from EMPLEADOS
 where SALARIO 
> 1350


Las tres cláusulas y las preguntas de construcción
Fijémonos ahora en las tres cláusulas de la anterior consulta SQL y que relación guardan con las preguntas de construcción:

  1. Cláusula SELECT: Donde indicamos los campos de la tabla que queremos obtener, separados por comas. Responde a la pregunta: ¿Qué datos nos piden?
  2. Cláusula FROM: Donde indicamos en que tabla se encuentran estos campos. Responde a la pregunta: ¿Dónde están los datos?
  3. Cláusula WHERE: Donde establecemos la condición que han de cumplir los registros de la tabla que serán seleccionados. Responde a la pregunta: ¿Qué requisitos deben cumplir lo registros? Es de hecho donde se establece el filtro de registros, es decir, que registros serán considerados para mostrar sus datos y cuales no.

Modificando la cláusula where
Imaginemos ahora la siguiente cuestión: ¿Qué empleados tienen un sueldo comprendido entre 1350 y 1450?

Si nos hacemos las preguntas de construcción:
  1. ¿Qué datos nos piden?
  2. ¿Dónde están los datos?
  3. ¿Qué requisitos deben cumplir los registros?

Observamos que para las dos primeras preguntas las respuestas son idénticas a la anterior cuestión, pero para la tercera es distinta. Esto nos indica que las cláusulas SELECT y FROM no van a cambiar respecto a la anterior consulta, y sólo lo hará la cláusula WHERE, así que podemos tomar la anterior consulta como patrón y modificarla para adaptarla a lo que se nos pide ahora.

Consulta patrón:
Código: Seleccionar todo
select NOMBRE , APELLIDOS
  from EMPLEADOS
 where SALARIO 
> 1350


Antes el salario debía ser mayor a 1350, ahora debe estar comprendido entre 1350 y 1450, ambos inclusive. La cláusula WHERE la construiremos de la siguiente manera:

Código: Seleccionar todo
where SALARIO >= 1350 and SALARIO <= 1450

Y se lee así: donde el salario sea mayor o igual a 1350 y menor o igual a 1450.

La consulta quedaría:
Código: Seleccionar todo
select NOMBRE , APELLIDOS
  from EMPLEADOS
 where SALARIO 
>= 1350 and SALARIO <= 1450


Si comparamos las dos consultas, se observa como únicamente difieren en la cláusula where.

El operador between
Existe otro modo de obtener la mismo resultado aprovechando más los recursos del SQL mediante el operador BETWEEN (entre). La consulta es equivalente y quedaría de la siguiente manera:

Código: Seleccionar todo
select NOMBRE , APELLIDOS
  from EMPLEADOS
 where SALARIO between 1350 and 1450


Es decir: donde el salario esté entre 1350 y 1450 ambos inclusive.

Y el resultado que nos devuelve el SGBD es:
El motor SQL
Aunque en la lección anterior se dijo que el SQL nos permite desentendernos de como se reúnen los datos, en un futuro nos vendrá bien entender de forma lógica su manera de proceder. Veamos como ejecuta esta consulta el motor SQL del SGBD. Primero seleccionará los registros que cumplen la condición de la cláusula WHERE, para ello debe recorrer todos los registros de la tabla y decidir, en función de la condición, si lo toma en consideración o no. Al final reunirá los campos indicados en la cláusula SELECT de la tabla indicada en la cláusula FROM cuyos registros han sido seleccionados por la clausula WHERE.

* * *

Resumen
Hemos dividido una consulta SQL concreta en tres cláusulas, se ha relacionado cada cláusula con las preguntas de construcción, hemos tomado como patrón una consulta para modificarla y adaptarla a los nuevos requisitos.

* * *

Ejercicio
Intente hallar una consulta que devuelva el nombre y apellidos de los empleados que cobren menos de 1350 euros.




    Lección 2 - Consultas I (SQL SELECT FROM WHERE)
  • Lección 4 - Tipos de dato

Creative Commons License Creative Commons License

Este curso está sujeto a la licencia Reconocimiento-NoComercial-SinObraDerivada 3.0 de Creative Commons. Usted puede copiarla, distribuirla y comunicarla públicamente siempre que especifique su autor y deletesql.com; no la utilice para fines comerciales; y no haga con ella obra derivada. Puede usted consultar la licencia completa aquí.




Volver a Curso SQL desde cero

¿Quién está conectado?

Usuarios navegando por este Foro: Google Adsense [Bot] y 8 invitados