Está en la página 1de 18

Clusula Where

Permite seleccionar las filas que deben incluirse en la respuesta de una consulta.

El formato general es: SELECT FROM Lista_de_campos Lista_de_tablas

WHERE

Condicin_de_seleccin ;

Ing. Pablo Lpez S., Msc.

Clusula Where
Las condiciones_de_seleccin son las condiciones que pueden aparecer en la clusula WHERE.

SQL posee cinco condiciones bsicas:


1. Test de comparacin 2. Test de rango 3. Test de pertenencia a un conjunto 4. Test de valor nulo 5. Test de correspondencia con patrn
Ing. Pablo Lpez S., Msc.

1. Test de Comparacin
Compara el valor de una expresin con el valor de otra.

La sintaxis es la siguiente:
= <> < <= >

expresin 1

expresin 2

>=
Ing. Pablo Lpez S., Msc.

2. Test de Rango ( BETWEEN )


Examina si el valor de la expresin est comprendido entre los dos valores definidos por exp1 y exp2. La sintaxis es la siguiente:

expresin expresin

BETWEEN NOT BETWEEN

exp1 exp1

AND AND

exp2 exp2

Ing. Pablo Lpez S., Msc.

3. Test de Pertenencia a un conjunto ( IN )


Examina si el valor de la expresin es uno de los valores incluidos en la lista de valores.

La sintaxis es la siguiente:

expresin

IN

( valor 1, valor 2, , valor n )

Ing. Pablo Lpez S., Msc.

4. Test de Valor Nulo ( IS NULL )

Una condicin de seleccin puede dar como resultado el valor verdadero (TRUE), falso (FALSE) o nulo (NULL). Cuando una columna que interviene en una condicin de seleccin contiene el valor nulo, el resultado de la condicin no es verdadero ni falso, sino nulo, sea cual sea el test que se haya utilizado.
Ing. Pablo Lpez S., Msc.

4. Test de Valor Nulo ( IS NULL )


Si queremos preguntar si un campo (columna) contiene el valor nulo debemos utilizar un test especial, el test de valor nulo. La sintaxis es la siguiente:

campo campo

IS NULL IS NOT NULL


Ing. Pablo Lpez S., Msc.

4. Test de Valor Nulo ( IS NULL )


Ejemplo 1:
SELECT oficina, ciudad FROM oficinas WHERE dir IS NULL

campo

IS NULL
Se obtiene una lista de las oficinas que no tienen director (los que NO tienen un valor en la columna dir).

Ejemplo 2:

campo

IS NOT NULL
Se obtiene una lista de los empleados asignados a alguna oficina (los que tienen un valor en la columna oficina).

SELECT numemp, nombre FROM empleados WHERE oficina IS NOT NULL

Ing. Pablo Lpez S., Msc.

5. Test de correspondencia con patrn ( LIKE )


Se lo emplea cuando utilizamos caracteres comodines para formar el valor del patrn (modelo) con el que vamos a comparar a todos los registros de un campo.

La sintaxis es la siguiente: campo campo LIKE NOT LIKE


Ing. Pablo Lpez S., Msc.

patrn patrn

5. Test de correspondencia con patrn ( LIKE )

Los comodines siguientes.

ms

utilizados

son

los

Comodn Descripcin ? Representa un carcter cualquiera * Representa cero o ms caracteres


Representa un dgito cualquiera ( 0 9 )

Ing. Pablo Lpez S., Msc.

5. Test de correspondencia con patrn ( LIKE )


Ejemplo 1:
SELECT numemp, nombre FROM empleados WHERE nombre LIKE 'Luis*' Lista los empleados cuyo nombre empiece por Luis (Luis seguido de cero o ms caracteres).

Ejemplo 2:
SELECT numemp, nombre FROM empleados WHERE nombre LIKE '*Luis*'
Lista los empleados cuyo nombre contiene Luis, en este caso tambin saldra los empleados Jos Luis (cero o ms caracteres seguidos de LUIS y seguido de cero o ms caracteres).

Ing. Pablo Lpez S., Msc.

5. Test de correspondencia con patrn ( LIKE )

Ejemplo 3:
SELECT numemp, nombre FROM empleados WHERE nombre LIKE '??a*' Lista los empleados cuyo nombre contenga una a como tercera letra (dos caracteres, la letra a, y cero o ms caracteres.

Ing. Pablo Lpez S., Msc.

Clusula Order By
Permite ordenar las filas que se obtuvieron como resultado de la consulta.

Con esta clusula se altera el orden de visualizacin de las filas de la tabla resultante pero NO se modifica el orden de las filas dentro de la tabla original.

La tabla con los datos originales no se modifica.

Ing. Pablo Lpez S., Msc.

Clusula Order By
Podemos indicar el campo por el que deseamos ordenar utilizando su nombre de campo o utilizando su nmero de orden que ocupa en la lista de seleccin del comando SELECT. La sintaxis es la siguiente:

ORDER BY ORDER BY

campo Nro. de orden

Ing. Pablo Lpez S., Msc.

Clusula Order By
Ejemplo 1: ORDER BY campo

SELECT nombre, oficina, contrato FROM empleados ORDER BY oficina

Se obtiene una lista ordenada con respecto a las oficinas especificando el nombre del campo oficina.

Ejemplo 2:

ORDER BY

Nro. de orden

SELECT nombre, oficina, contrato FROM empleados ORDER BY 2

Se obtiene una lista ordenada con respecto a las oficinas especificando su nmero de orden que ocupa en la lista de seleccin del comando SELECT.

Ing. Pablo Lpez S., Msc.

Clusula Order By
Por defecto el orden ser ascendente (ASC) (de menor a mayor si el campo es numrico, por orden alfabtico si el campo es de tipo texto, de anterior a posterior si el campo es de tipo fecha/hora, etc.), aunque se lo puede definir tambin en orden descendente (DESC).

La sintaxis es la siguiente:
ORDER BY campo ASC DESC ORDER BY Nro. de orden
Ing. Pablo Lpez S., Msc.

ASC DESC

Clusula Order By
Tambin podemos ordenar por varias columnas, en este caso se indican las columnas separadas por comas. La clusula DESC o ASC se puede indicar para cada columna y as utilizar una ordenacin distinta para cada columna. Por ejemplo ascendente por la primera columna, y, dentro de la primera columna, descendente por la segunda columna.
Ing. Pablo Lpez S., Msc.