Ejercicio 1
create database ejerccios
use ejerccios
create table profesor
(P# varchar(7) primary key,
nombre char(15) not null,
depar varchar(10) not null);
insert into profesor(p#,nombre,depar) values('p1','raul','105')
insert into profesor(p#,nombre,depar) values('p2','simon','103')
insert into profesor(p#,nombre,depar) values('p3','rosa','107')
insert into profesor(p#,nombre,depar) values('p4','adrian','107')
create table asignatura
(a# varchar(7) primary key,
noma char(10) not null
);
insert into asignatura(a#,noma) values ('a1','fisica')
insert into asignatura(a#,noma) values ('a2','quimica')
insert into asignatura(a#,noma) values ('a3','dibujo')
insert into asignatura(a#,noma) values ('a4','matematica')
create table asistencia
(p# varchar(7) not null ,
a# varchar(7) not null,
c# varchar(7) not null);
insert into asistencia(p#,a#,c#) values('p1','a1','c1')
insert into asistencia(p#,a#,c#) values('p1','a2','c3')
insert into asistencia(p#,a#,c#) values('p2','a4','c1')
insert into asistencia(p#,a#,c#) values('p3','a3','c3')
insert into asistencia(p#,a#,c#) values('p3','a3','c2')
insert into asistencia(p#,a#,c#) values('p4','a2','c1')
insert into asistencia(p#,a#,c#) values('p4','a2','c2')
insert into asistencia(p#,a#,c#) values('p3','a3','c1')
create table clase
(c# varchar(7)primary key,
piso varchar(4) not null,
bloque varchar(4)not null);
insert into clase(c#,piso,bloque) values('c1','1','1')
insert into clase(c#,piso,bloque) values('c2','1','2')
insert into clase(c#,piso,bloque) values('c3','2','1')
select*from asistencia
--solusiones algebraicas
--1-Obtener todos los datos de todas las clases.
select*from clase
--2-Obtener todos los datos de todas las clases ubicadas en el primer piso.
select*from clase where c#='c1'
--3-Obtener los profesores que asisten a la clase 'C1'.
select p# from asistencia where (c#='c1')
--4- Obtener los valores de PISO y BLOQUE para las clases a las que asiste el profesor 'P1'.
select*from asistencia where (p#='p1')
--5-Obtener los valores de P# para los profesores que asisten a la clase 'C1' impartiendo la asignatura de FISICA.
select p# from asistencia where (c#='c1' and a#='a1')
--6-Obtener los valores de P# para los profesores que asisten a las clases 'C1' o 'C2'.
select p# from asistencia where (c#='c1' or c#='c2')
--7-Obtener los valores de P# para los profesores que asisten a las clases 'C1' y 'C2'.
¿ revisar select p# from asistencia where (c#='c1' and c#='c2')
--8-Obtener los nombres de los profesores que asisten solo a clases del Bloque 1.
select p# from asistencia where (c#='c1' or c#='c3')
--9-Obtener los nombres de los profesores que asisten a todas las clases del Bloque 1.
¿ revisar select p# from asistencia where (c#='c1' and c#='c3')
--10-Obtener las clases en las que se imparten todas las asignaturas
Ejercicio 2
select papel.nomp from papel,edit where (edit.ciudad='madrid')
select distinct elp.e# from elp,edit,libros,papel where elp.p#=papel.p#
and elp.p#='p1' or elp.p#='p3' and elp.l#=libros.l# and libros.año=1978
select distinct elp.p# from elp,edit,libros,papel where elp.e#=edit.e# and
elp.p#=papel.p# and elp.e#='e1'
select distinct elp.l# from elp,edit,libros,papel where
elp.l#=libros.l# and elp.p#=papel.p# and
elp.p#=papel.p# and papel.ciudad<>'madrip'
Ejer 3
select*from ordenadores
select*from programas
select*from usos
select*from usuario
uno
select usos.u# from usuario, usos, programas where usos.u#=usuario.u#
and programas.p#=usos.p# and programas.distribuidor='d1'
dos
select distinct usos.p# from usos ,programas,usuario
where usos.u#=usuario.u# and usos.u#='u5'
tres
? distriuidores
select
cuatro
select ordenadores.modelo from ordenadores,usos,usuario where
usos.o#=ordenadores.o# and usos.u#=usuario.u# and usuario.edad>29
and usos.tiempo>3
ejer 4
select pelicula from GUSTA where aficionado='José Pérez'
select videoteca.videoclub from videoteca, gusta,socio where
socio.aficionado=gusta.aficionado and
videoteca.pelicula=gusta.pelicula and gusta.aficionado='José Pérez'
select socio.aficionado from videoteca, gusta,socio where
socio.aficionado=gusta.aficionado and
videoteca.pelicula=gusta.pelicula
ejercicio 5
select distinct partes.t# from partes,TRABAJADOR,FINCAS,MAQUINAS
where PARTES.m#=MAQUINAS.m# and maquinas.tipo=1
select distinct partes.f# from partes,TRABAJADOR,FINCAS,MAQUINAS
where PARTES.m#=MAQUINAS.m# and partes.f#=FINCAS.f#
and partes.m#='m1' or partes.m#='m3'
select distinct MAQUINAS.m# from partes,TRABAJADOR,FINCAS,MAQUINAS where
mAQUINAS.m#<>partes.m#
revisate este q me slen todas las maquinas cuando solo tendria q salir la maquina “m4”
select distinct fincas.nombre from partes,TRABAJADOR,FINCAS,MAQUINAS
where partes.f#=fincas.f# and PARTES.m#=MAQUINAS.m# and maquinas.precio_hora>2000
and partes.tiempo>5
ejercicio 6
select ALUMNOS.nombre from ALUMNOS,PRACTICAS,ENTREGA
where ENTREGA.a#=alumnos.a# and ENTREGA.p#=practicas.p#
and entrega.nota>5 and practicas.curso=3
select distinct ALUMNOS.nombre from ALUMNOS,PRACTICAS,ENTREGA
where ENTREGA.a#=alumnos.a# and ENTREGA.p#=practicas.p#
se gun mi logica si no aparese es por que no existe practica pero revisalo
select ALUMNOS.nombre from ALUMNOS,PRACTICAS,ENTREGA
where ENTREGA.a#=alumnos.a# and ENTREGA.p#=practicas.p#
and practicas.curso between 2 and 3
select ALUMNOS.nombre from ALUMNOS,PRACTICAS,ENTREGA
where ENTREGA.a#=alumnos.a# and ENTREGA.p#=practicas.p#
and practicas.curso=2
select ALUMNOS.nombre from ALUMNOS,PRACTICAS,ENTREGA
where ENTREGA.a#=alumnos.a# and ENTREGA.p#=practicas.p#
and practicas.curso=2 and alumnos.grupo='BD-11'
f) Obtener el nombre de los alumnos que no han
suspendido ninguna práctica de las que han entregado.
Suspendido? No entiendo pero asela voz ya tenes el machote
SQL ejercicio 7
La Federación Internacional de Ciclismo Profesional desea tener una BDR con las siguientes tablas:
EQUIPOS (E#, NOMBRE, PAIS)
CICLISTAS (C#, NOMBRE, E#)
COMPETICIONES (M#, NOMBRE, PAIS, DURACION)
CLASIFICACION (M#, C#, PUESTO)
Se pide escribir las sentencias necesarias en álgebra relacional para:
a) Obtener los ciclistas que sólo han participado en competiciones de duración inferior a 15 días.
b) Obtener los ciclistas de equipos salvadoreños que han competido en todas las competiciones de El salvador
c) Obtener los ciclistas que han obtenido un primer y un segundo puestos en competiciones con una
duración inferior a 15 días.
Problema a
π ciclistas (õ competiciones.duracion<15 dias (clasificacion.ciclistas ,
competiciones ))
select ciclistas.nombre from clasificacion,ciclistas ,
competiciones where clasificacion.c#=ciclistas.c#
and competiciones.m#=clasificacion.m# and competiciones.duracion<15
Problema b
π ciclistas (õ competiciones=’el salvador’ ^ equipo=’el salvador’ (ciclistas,equipos, competiciones ))
select distinct ciclistas.nombre, equipos.nombre as equipo, competiciones.pais
from ciclistas,equipos, competiciones
where ciclistas.e#=equipos.e# and equipos.pais='el salvador'
and competiciones.pais='el salvador'
Problema c
π ciclistas (õ puesto<’3’ ^ competiciones.duracion <’15 dias’ (ciclistas,equipos, competiciones ))
select distinct ciclistas.nombre from clasificacion,ciclistas ,
competiciones where clasificacion.c#=ciclistas.c#
and competiciones.m#=clasificacion.m# and competiciones.duracion<15 and
puesto<3
ejercicio 8
select distinct conductor.NOMBREC from CONDUCTOR,AGENTE ,INFRACCION,DENUNCIA where
denuncia.c#=conductor.c# and denuncia.i#=infraccion.i#
and infraccion.IMPORTE<10000
select distinct agente.a# from CONDUCTOR,AGENTE ,INFRACCION,DENUNCIA where
denuncia.i#=infraccion.i# and denuncia.a#=agente.a# and
INFRACCION.DESCRIP='ESTACIONAMIENTO'
select distinct conductor.NOMBREC from CONDUCTOR,AGENTE ,INFRACCION,DENUNCIA where
denuncia.c#=conductor.c# and denuncia.i#=infraccion.i#
and DENUNCIA.PAGADA='s'
No hay comentarios:
Publicar un comentario