2.5.3. Otros predicados
2.5.3. Otros predicados Dataprix 21 September, 2009 - 09:571) Predicado BETWEEN
Para expresar una condición que quiere encontrar un valor entre unos límites concretos, podemos utilizar Roman;">BETWEEN</span>:</p>
SELECT nombre_columnas_a_seleccionar
FROM tabla_a_consultar
WHERE columna BETWEEN límite1 AND límite2;
Ejemplo de uso del predicado BETWEEN
Un ejemplo en el que se pide “Los códigos de los empleados que ganan entre 20.000 y 50.000 euros anuales” sería:
codio_empl |
---|
5 |
6 |
7 |
8 |
La respuesta a esta consulta sería la que se ve en el margen.
2) Predicado IN
Para comprobar si un valor coincide con los elementos de una lista utilizaremos IN, y para ver si no coincide, NOT IN:
Ejemplo de uso del predicado IN
“Queremos saber el nombre de todos los departamentos que se encuentran en las ciudades de Lleida o Tarragona”:
nombre_dep |
ciudad_dep |
---|---|
DIS | Lleida |
PROG | Tarragona |
La respuesta sería la que aparece en el margen.
3) Predicado LIKE
Para comprobar si una columna de tipo carácter cumple alguna propiedad determinada, podemos usar LIKE:
Los patrones del SQL92 para expresar características son los siguientes:
Otros patrones |
Aunque_y % son los caracteres elegidos por el estandar, cada sistema relacional comercial ofrece diversas variantes. |
a) Pondremos un carácter _ para cada carácter individual que queramos considerar.
b) Pondremos un carácter % para expresar una secuencia de caracteres, que puede no estar formada por ninguno.
Ejemplo de uso del predicado LIKE
Atributos añadidos |
Aunque la consulta pide sólo los nombres de empleados añadimos los códigos para poder diferenciar dos empleados con el mismo nombre. |
A continuación presentamos un ejemplo en el que buscaremos los nombres de los empleados que empiezan por J, y otro ejemplo en el que obtendremos los proyectos que comienzan por S y tienen cinco letras:
a) Nombres de empleados que empiezan por la letra J:
codigo_empl |
nombre_empl |
---|---|
4 | Jorge |
La respuesta a esta consulta seria la que se muestra den el margen.
b) Proyectos que empiezan por S y tienen cinco letras:
codigo_progec |
---|
3 |
Y la respuesta a esta otra consulta sería la que aparece en el margen.
4) Predicado IS NULL
Para comprobar si un valor es nulo utilizaremos IS NULL, y para averiguar si no lo es, IS NOT NULL. El formato es:
Ejemplo de uso del predicado IS NULL
Un ejemplo de uso de este predicado sería “Queremos saber el código y el nombre de todos los empleados que no están asignados a ningún proyecto”:
codigo_emple |
nombre_emple |
---|---|
8 | Sergio |
Obtendríamos la respuesta que tenemos al margen.
5) Predicados ANY/SOME y ALL
Los predicados ANY/SOME |
Podemos elegir cualquiera de los predicados para pedir que alguna fila satisfaga una conducción. |
Para ver si una columna cumple que todas sus filas (ALL) o algunas de sus filas (ANY/SOME) satisfagan una condición, podemos hacer:
Ejemplo de uso de los predicados ALL y ANY/SOME
a) Veamos un ejemplo de aplicación de ALL para encontrar los códigos y los nombres de los proyectos en los que los sueldos de todos los empleados asignados son menores que el precio del proyecto:
codigo_proyec | nombre_proyec |
---|---|
1 | GESCOM |
2 | PESCI |
3 | SALSA |
4 | TINELL |
Fijémonos en la condición de WHERE de la subconsulta, que nos asegura que los sueldos que observamos son los de los empleados asignados al proyecto de la consulta. La respuesta a esta consulta sería la que aparece en el margen.
b) A continuación, presentamos un ejemplo de ANY/SOME para buscar los códigos y los nombres de los proyectos que tienen algún empleado que gana un sueldo más elevado que el precio del proyecto en el que trabaja.
codigo_proyec | nombre_proyec |
---|---|
La respuesta a esta consulta está vacía, como se ve en el margen.
6) Predicado EXISTS
Para comprobar si una subconsulta produce alguna fila de resultados, podemos utilizar la sentencia denominada test de existencia: EXISTS. Para comprobar si una subconsulta no produce ninguna fila de resultados, podemos utilizar NOT EXISTS.
Ejemplo de uso del predicado EXISTS
codigo_empl | nombre_empl |
---|---|
1 |
María |
2 | Pedro |
3 | Ana |
4 | Jorge |
5 | Clara |
6 | Laura |
7 | Rogelio |
Un ejemplo en el que se buscan los códigos y los nombres de los empleados que están asignados a algún proyecto sería:
La respuesta a esta consulta sería la que se muestra en el margen.