Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FRANCISCO JAVIER
10. Obtener el nombre de cada ciclista junto con el nombre del equipo
al que pertenece
SELECT nombre, nomeq FROM ciclista
30. Nombre de los ciclistas que han ganado la etapa que comienza en
Zamora.
SELECT nombre FROM ciclista, etapa WHERE etapa.dorsal=ciclista.dorsal AND
llegada='Zamora'
31. Obtén el nombre y la categoría de los puertos ganados por
ciclistas del equipo ʻBanestoʼ.
SELECT nombre FROM ciclista, etapa WHERE etapa.dorsal=ciclista.dorsal AND
salida='Zamora'
33. Obtener el nombre de los ciclistas con el color de cada maillot que
hayan llevado.
SELECT nombre, color FROM ciclista, maillot, llevar WHERE llevar.dorsal=ciclista.dorsal
AND
llevar.codigo=maillot.codigo
37. Obtener la edad media de los ciclistas que han ganado alguna
etapa.
SELECT AVG(edad) FROM ciclista WHERE dorsal IN (SELECT dorsal FROM etapa) igual
a 23.3 Es así ((21+29+20)/3), y no es así:
SELECT AVG(edad) FROM ciclista, etapa WHERE ciclista.dorsal=etapa.dorsal igual a
22.4, porque aquí lo que está haciendo es (21x3 + 29 + 20) / 5
40. Obtener el dorsal y el nombre de los ciclistas que han ganado los
puertos de mayor altura.
SELECT ciclista.dorsal, nombre FROM ciclista, puerto WHERE
ciclista.dorsal=puerto.dorsal
AND puerto.altura=(SELECT MAX(altura) FROM puerto)
41. Obtener el nombre del ciclista más joven que ha ganado al menos
una etapa.
SELECT nombre FROM ciclista, etapa WHERE ciclista.dorsal=etapa.dorsal AND
edad=(SELECT MIN(edad) FROM ciclista, etapa WHERE etapa.dorsal=ciclista.dorsal)
42. Obtener el valor del atributo netapa de aquellas etapas tales que
todos los puertos que están en ellas tienen más de 700 metros de
altura.
SELECT DISTINCT etapa.netapa FROM etapa, puerto WHERE altura>700 AND
puerto.netapa=etapa.netapa
43. Obtener el nombre y el director de los equipos tales que todos sus
ciclistas son mayores de 20 años.
SELECT DISTINCT equipo.nomeq, director FROM equipo, ciclista
WHERE ciclista.nomeq=equipo.nomeq AND equipo.nomeq NOT IN
(SELECT nomeq FROM ciclista WHERE edad<20)
44. Obtener el dorsal y el nombre de los ciclistas tales que todas las
etapas que han ganado tienen más de 170 km (es decir que sólo han
ganado etapas de más de 170 km).
SELECT ciclista.dorsal, nombre FROM ciclista, etapa WHERE
etapa.dorsal=ciclista.dorsal AND km>170
45. Obtener el nombre de los ciclistas que han ganado todos los
puertos de una etapa y además han ganado esa misma etapa.
SELECT DISTINCT nombre FROM ciclista, puerto WHERE ciclista.dorsal=puerto.dorsal
AND nombre IN
(SELECT DISTINCT nombre FROM ciclista, etapa WHERE ciclista.dorsal=etapa.dorsal)
46. Obtener el nombre de los equipos tales que todos sus corredores
han llevado algún maillot o han ganado algún puerto.
SELECT DISTINCT nomeq FROM ciclista, llevar, puerto, maillot WHERE
ciclista.dorsal=puerto.dorsal AND
ciclista.dorsal=llevar.dorsal AND llevar.codigo=maillot.codigo
47. Obtener el código y el color de aquellos maillots que sólo han sido
llevados por ciclistas de un mismo equipo.
DEJAR PARA LUEGO
Select maillot.codigo, maillot.color, equipo.nomeq
From maillot, llevar, ciclista, equipo
Where maillot.codigo=llevar.codigo and llevar.dorsal=ciclista.dorsal and
ciclista.nomeq=equipo.nomeq
And not exists (select *
From llevar ll, ciclista c
Where ll.codigo=maillot.codigo and ll.dorsal=c.dorsal and
c.nomeq<>ciclista.nomeq);
48. Obtener el nombre de aquellos equipos tal que sus ciclistas sólo
hayan ganado puertos de 1ª categoría.
SELECT nomeq FROM ciclista WHERE dorsal IN (SELECT dorsal FROM puerto WHERE
categoria=1)
49. Obtener el valor del atributo netapa de aquellas etapas que tienen
puertos de montaña indicando cuántos tiene.
SELECT DISTINCT etapa.netapa"Numero de etapa", COUNT(*)"Cantidad de etapa"
FROM etapa, puerto
WHERE etapa.netapa=puerto.netapa
GROUP BY etapa.netapa
54. Obtener el director de los equipos cuyos ciclistas han llevado más
días maillots de cualquier tipo.
Select e.descripción, c.nomeq, count (*)
From ciclista c, llevar ll, equipo e
Where c.dorsal =ll.dorsal and c.nomeq=e.nomeq
Having count(*) = (select max(count(*))
From llevar ll1, ciclista c1
Where ll1.dorsal=c1.dorsal
Group by (c1.nomeq) )
Group by e.descripción, c.nomeq;
(hasta Aki)
55. Obtener el código y el color del maillot que ha sido llevado por
algún ciclista que no ha ganado ninguna etapa.
62. Obtener el dorsal y el nombre de los ciclistas que han llevado dos
tipos de maillot menos de los que ha llevado el ciclista de dorsal 3.
63. Obtener el valor del atributo netapa y los km de las etapas que tienen
puertos de montaña.
use musicago
/*1. Cuántos discos hay*/
select * from discoselect count(nombre) from disco
/*2. Selecciona el nombre de los grupos que no sean de España.*/select nombre from
grupo where grupo.pais like '[^españa]%'
/*4. Según los datos en la base de datos, obtener la lista de las distintas funciones
que se pueden realizar en un grupo.*/select funcion from pertenece group by funcion
/*5. Selecciona el nombre y la sede de los clubes de fans con más de 500 socios.*/
select nombre,sede from club where num > 500
/*6. Obtener el nombre y la sede de cada club de fans de grupos de España así como
el nombre del grupo al que admiran.*/
select club.nombre,sede,num from club, grupo where club.cod_gru=grupo.cod and
pais='España'
../*8. Obtener el nombre de los discos que contienen alguna canción que dure más de
5 minutos.*/
/*9. Obtener los nombres de las canciones que dan nombre al disco en el que
aparecen.*/
select disco.nombre from disco, cancion, estawhere disco.cod = esta.cod and esta.can
= cancion.cod and cancion.titulo = disco.nombre
/*12. Obtener el nombre de los discos grabados por grupos con club de fans con más
de 5000 personas.*/
select disco.nombre,grupo.cod,club.num from grupo, disco, clubwhere grupo.cod =
disco.cod_gru and grupo.cod = club.cod_gru and club.num >500
/*13.Obtener el nombre de los clubes con mayor número de fans indicando ese
número.*/select nombre,num from clubwhere num > 23400 and num <23415
/*15. Obtener el nombre de las compañías discográficas que no han trabajado con
grupos españoles.*/
select companyia.nombre from grupo, disco,companyiawhere grupo.cod
=disco.cod_gru and disco.cod_comp=companyia.cod and grupo.pais like '[^españa]
%'
/*16. Obtener el nombre de las compañías discográficas que solo han trabajado con
grupos españoles.*/
/*22. Obtener los nombre de los artistas de grupos con clubes de fans de más de 500
personas y que el grupo sea de Inglaterra.*/
/*23. Obtener el título de las canciones de todos los discos del grupo U2.*/
select cancion.titulo from grupo,disco,cancion,estawhere cancion.cod =esta.can and
disco.cod=esta.cod and grupo.cod=disco.cod_gru and grupo.nombre like '[u2]%'
/*24. El dúo dinámico por fin se jubila; para sustituirles se pretende hacer una
selección sobre todos los pares de artistas de grupos españoles distintos tales que el
primero sea voz y el segundo guitarra. Obtener dicha selección.*/
/*27.Obtener el décimo (debe haber sólo 9 por encima de él) club con mayor número
de fans indicando ese número.*/