SQL 102: Las sentencias compuestas del SELECT PT. 1

>> //seccion/bd/ -- 3 comentario /// Agregado el 2005-03-09 @ Por Vashu

Introduccion a la sentencias de condicion, que permiten limitar el tipo de informacion que extraemos.

Como pudimos ver en la clase anterior con la sentencia del SELECT podemos extraer información de la base de datos. Pero hasta ahora solo hemos visto la manera simple de hacer un SELECT. O mejor dicho la parte obligatoria de esta sentencia.
Esta sentencia es muy versátil y permite mucha flexibilidad en la clase de consultas que se desea realizar, pero para esto es necesario utilizar sus sentencias adicionales. En esta clase veremos una introducción a las sub-sentencias de condición y Estás son:

WHERE, ORDER BY, GROUP BY, HAVING y las uniones o JOINS.

En esta lección veremos como utilizar WHERE para filtrar el tipo de información que deseamos extraer de manera que no extraiga todos los registros de la tabla, sino solo los que nos interesan. Para esto volveremos a utilizar la tabla de ejemplo MCUSERS pero un poco modificada:

MCUSERS
ID|NOMBRE|NIVEL|SEXO
1|Massy|Mcuser|F
2|Vashu|Webmaster|M
3|Sparohawk|Webmaster|M
4|Exema|Mcuser|M
5|Hades|Moderador|M
6|Punkgirl|Webmaster|F


Si quisiéramos extraer todos los datos de esta tabla podríamos utilizar la sentencia de la misma manera que anteriormente (select * from mcusers). Pero que pasa si solo quisiéramos algunos datos en especifico?
Es aquí donde entra la sub-sentencia WHERE, esta nos permite establecer una serie de condiciones que debe de cumplir un registro para poder ser desplegados. Y se utiliza de la siguiente manera:

SELECT *
FROM mcusers
WHERE conjunto-de-condiciones

Los tipos de condiciones que este permite son:
De igualación (con el símbolo de =), de patrón (con la condición LIKE), de existencia con la condición IN y otras condiciones que veremos según avancen las clases.
La más simple y fácil de utilizar es la de igualación o comparación. Por ejemplo, digamos que queremos extraer todos los registros de usuarios Femeninos, para esto usaríamos esta sentencia:

SELECT *
FROM mcusers
WHERE sexo = ‘F’

Y esto nos traeria:

ID|NOMBRE|NIVEL|SEXO
1|Massy|Mcuser|F
6|PunkgirlWebmaster|F


Noten que lo que estoy diciendo es seleccióname todos los campos de la tabla mcusers y tráeme los registros que posean un sexo F. También noten que utilice comillas simples para delimitar lo que estoy buscando. Esto es porque los Strings o cadenas de caracteres deben encerrarse de esta manera para ser reconocidos por SQL.
Ahora si deseáramos compararlo con un campo numérico, esto no es necesario. Por ejemplo:

SELECT *
FROM mcusers
WHERE id = 2.

Como ya deben de esperarlo, esta sentencia les traería a mi registro (vashu).

ID|NOMBRE|NIVEL|SEXO
2|Vashu|Webmaster|M


Ahora hay reglas que se aplican, y es que debe estar escrito exactamente igual para que funcione. Si escribieran con una mayúscula mal o con espacios faltantes o de más. No retornaría ningún registro o quizás uno equivocado.
También se pueden unir condiciones utilizando los operadores AND y OR. Por ejemplo

SELECT *
FROM mcusers
WHERE sexo = ‘F’ AND nivel = ‘Webmaster’

También vale la pena indicar que el símbolo de igual no es el único que nos permite hacer comparaciones. Podemos además utilizar los símbolos siguientes símbolos:

Símbolo	Significado		Trae registros cuyo campo comparado sea:
> Mayor que… ...mayor que el valor evaluado
< Menor que… ...mayor que el valor evaluado
= Igual que… ...igual que el valor evaluado
>= Mayor o Igual ...menor o igual al valor evaluado
<= Menor o Igual ...mayor o igual al valor evaluado
<> o != Diferente a… ...diferente al valor evaluado


Esto es todo por esta clase, en la próxima veremos LIKE e IN. Para filtrar la información de manera más dinámica.