Sunteți pe pagina 1din 5

Actividad del 07 de abril del 2011

Múltiples Consultas (Subconsultas o Consultas Anidadas)


Qué Realizar y Elaborar Las Consultas Propuestas (de la 26 hasta la 29) en los DBMS´S
anali access y mysql4 del siguiente Ejemplo Propuesto de la información de la bds.
zar Del Banco:

Múltiples Consultas
Subconsultas anidadas

Comparación de conjuntos
Considérese la consulta 26.- «Obtener los nombres de todas las sucursales que
poseen un activo mayor que al menos una sucursal situada en Barcelona» Se
formulaba esta consulta del modo siguiente:

select distinct T.nombre-sucursal from sucursal as T, sucursal as S where


T.activo > S.activo and
S.ciudad-sucursal = 'Barcelona'

SQL ofrece, sin embargo, un estilo alternativo de formular la consulta


anterior. La expresión: «mayor que al menos una» se representa en SQL por >
some. Esta constructora permite reescribir la consulta en una forma más
parecida a la formulación de la consulta en lenguaje natural.
Qué Realizar y 27.- select nombre_sucursal
anali
zar, from sucursal
conti where activo> some (select activo
núa
from sucursal where ciudad_sucursal = 'Navacerrada')

La subconsulta:

(select activo
from sucursal
where ciudad-sucursal = 'Barcelona')

Genera el conjunto de todos los valores de activo para todas las sucursales
sitas en Barcelona. La comparación > some, en la cláusula where de la
cláusula select más externa, es cierta si el valor del atributo activo de la tupla
es mayor que al menos un miembro del conjunto de todos los valores de
activo de las sucursales de Barcelona.
SQL también permite realizar las comparaciones < some, <= some, >= some,
= some y <> some. Here Como ejercicio, se puede verificar que = some es
identico a in, mientras que <= some no es lo mismo que not in. En SQL, la
palabra c1ave any es sinónimo de some. Las versiones más antiguas de SQL
solo admitían any. Sin embargo, versiones posteriores añadieron la alternativa
some para evitar la ambigüedad lingüística de la palabra inglesa any.
Qué Realizar y Ahora la consulta se modificara ligeramente a fin de obtener los nombres de
anali
zar, todas las sucursales que tienen un activo superior al de todas las sucursales de
conti Barcelona. La constructora > all corresponde a la expresión «superior a
núa
todas». Utilizando esta constructora la consulta se podría formular del modo
siguiente:

28.- select nombre-sucursal


from sucursal
where activo> all (select activo
from sucursal
where ciudad-sucursal
= 'Barcelona')

Al igual que con some, SQL también permite utilizar las comparaciones < all,
<= all, >= all, = all y <> all. Como ejercicio se puede verificar que <= any es
1o mismo que not in.
Here Como otro ejemplo de comparaciones considérese la consulta
«Encontrar la sucursal que tiene el mayor saldo medio» En SQL, las
funciones de agregación no se pueden componer. Así, no esta permitido el
uso de Max (avg (...)).
Qué Realizar y Por ello, para la formulación de esta consulta se seguirá la estrategia
anali
zar, siguiente: para empezar se formula una consulta para encontrar todos los
conti saldos medios, y luego se anida esta como subconsulta de una consulta mas
núa
larga que encuentre aquellas sucursales para las que el saldo medio es mayor
o igual que todos los saldos medios:
29.- select nombre-sucursal
from cuenta
group by nombre-sucursal
having avg (saldo) >= all (select avg (saldo)
from cuenta
group by nombre-sucursal)
Qué Enviar • En el DBMS access la bd y las consultas
• En el DBMS mysql4 las pantallas en un documeto word donde se
aprecien las Consultas realizadas y su resultado correspondiente

p.d.
“Viva Dios La Familia y El Estudio”
Atte.
Knigthofthekindomoftheheaven/AAC

S-ar putea să vă placă și