Problema:
Un club de dicta clases de distintos deportes a sus socios. Guarda la información de los deportes
que dicta en una tabla llamada "deportes", los datos de los profesores en "profesores" y las
inscipciones en "inscriptos".
1- Elimine las tablas, si existen.
2- Cree las tablas:
create table deportes(
codigo tinyint unsigned auto_increment,
nombre varchar(20) not null,
profesor tinyint unsigned,
primary key(codigo)
);
create table profesores(
codigo tinyint unsigned auto_increment,
nombre varchar(30),
domicilio varchar(30),
primary key(codigo)
);
create table inscriptos(
numerosocio int unsigned,
deporte tinyint unsigned,
año year not null,
cuota char(1), /*'s' o 'n', si esta paga o no*/
primary key(numerosocio,deporte,año)
);
3- Ingrese los siguientes registros:
insert into profesores values(1,'Alfredo Perez','Sarmiento 984');
insert into profesores values(2,'Betina Molina','Sucre 356');
insert into profesores values(3,'Carlos Garcia','Urquiza 209');
insert into profesores values(4,'Daniel Morales','Salta 1234');
insert into deportes values(1,'tenis',1);
insert into deportes values(2,'natacion',2);
insert into deportes values(3,'basquet',3);
insert into deportes values(4,'futbol',1);
insert into inscriptos values(102,1,'2006','s');
insert into inscriptos values(102,2,'2006','s');
insert into inscriptos values(104,2,'2006','s');
insert into inscriptos values(104,3,'2006','s');
insert into inscriptos values(106,1,'2006','s');
insert into inscriptos values(109,2,'2006','s');
4- Se quiere eliminar de la tabla "deportes" aquellos deportes para los cuales no hay inscriptos:
delete deportes
from deportes as d
left join inscriptos as i
on d.codigo=i.deporte
where i.deporte is null;
5- se quiere eliminar de la tabla "profesores" a aquellos profesores que no dictan ningún deporte,
es decir, que no están en la tabla "deportes":
delete profesores
from profesores as p
left join deportes as d
on d.profesor=p.codigo
where d.profesor is null;
Otros problemas:
A) Un profesor guarda los datos de sus alumnos en una tabla llamada "alumnos" y los alumnos
aprobados en la tabla "aprobados".
1- Elimine las tablas si existen:
drop table if exists alumnos, aprobados;
2- Cree las tablas:
create table alumnos(
legajo int(3) unsigned,
nombre varchar(30)
);
create table aprobados(
legajo int(3) unsigned,
promedio decimal(4,2) unsigned
);
3- Ingrese los siguientes registros:
insert into alumnos values(123,'Juan Perez');
insert into alumnos values(223,'Marta Molina');
insert into alumnos values(343,'Patricia Vargas');
insert into alumnos values(456,'Hector Fuentes');
insert into alumnos values(467,'Alfredo Lopez');
insert into alumnos values(678,'Carla Juarez');
insert into aprobados values(223,9.4);
insert into aprobados values(456,6);
insert into aprobados values(467,4.5);
insert into aprobados values(678,7.8);
4- Se quiere eliminar de la tabla "alumnos" todos aquellos alumnos que no se encuentran en la
tabla "aprobados":
delete alumnos
from alumnos as al
left join aprobados as ap
on al.legajo=ap.legajo
where ap.legajo is null;
B) Una pequeña biblioteca de barrio registra los datos de sus socios en la tabla "socios" y en una
tabla "morosos" el documento del socio que adeuda libros y la fecha desde la cual es moroso.
1- Elimine las tablas, si existen.
2- Cree las tablas:
create table socios(
documento char(8),
nombre varchar(30),
domicilio varchar(30),
primary key(documento)
);
create table morosos(
documento char(8),
fecha date
);
3- Ingrese algunos registros:
insert into socios values(234,'Juan Lopez','Colon 345');
insert into socios values(345,'Ana Ferrero','Caseros 98');
insert into socios values(456,'Juan Perez','Urquiza 356');
insert into socios values(567,'Karina Torres','Peru 743');
insert into socios values(678,'Juan Lopez','Avellaneda 234');
insert into socios values(789,'Laura Juarez','Sarmiento 765');
insert into morosos values(345,'2006-08-10');
insert into morosos values(567,'2006-09-24');
insert into morosos values(789,'2006-10-06');
4- Se quiere borrar de la tabla "socios" los socios morosos:
delete socios
from socios as s
join morosos as m
on s.documento=m.documento;