Problema:
Una clínica registra los pacientes en una tabla llamada "pacientes" y en otra tabla
denominada "obrassociales" almacena los datos de las obras sociales que atiende.
1- Elimine las tablas si existen.
2- Cree las tablas:
create table pacientes(
documento char(8),
nombre varchar(30),
domicilio varchar(30),
codigoobrasocial tinyint unsigned
);
create table obrassociales(
codigo tinyint unsigned auto_increment,
nombre varchar(15),
domicilio varchar(30),
primary key(codigo)
);
3- Ingrese algunos registros:
insert into obrassociales values (1,'PAMI','Colon 345');
insert into obrassociales values (2,'IPAM','Sucre 98');
insert into obrassociales values (3,'OSDOP','Avellaneda 267');
insert into pacientes values('22333444','Juan Lopez','Guemes 235',1);
insert into pacientes values('23444555','Analia Juarez','Avellaneda 367',1);
insert into pacientes values('24555666','Juan Lopez','Guemes 235',2);
insert into pacientes values('25666777','Jose Ferrero','Urquiza 312',3);
insert into pacientes values('26777888','Hhector Garcia','Caseros 411',3);
insert into pacientes values('27888999','Susana Duarte','Peru 211',3);
4- La clínica ya no atiende a pacientes de la obra social "PAMI". Se quiere eliminar de la
tabla "obrassociales" a dicha obra social y de la tabla "pacientes" a todos los pacientes que
de "PAMI":
delete pacientes,obrassociales
from pacientes
join obrassociales
on pacientes.codigoobrasocial=obrassociales.codigo
where obrassociales.nombre='PAMI';
5- Verifique las eliminaciones.
Otros problemas:
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
);
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,'2016');
insert into inscriptos values(102,2,'2016');
insert into inscriptos values(104,2,'2016');
insert into inscriptos values(104,3,'2016');
insert into inscriptos values(106,1,'2016');
insert into inscriptos values(109,2,'2016');
4- El club ha cancelado el deporte "tenis"; se quiere eliminar dicho deporte de la tabla "deportes"
y las inscripciones a "tenis" de "inscriptos":
delete deportes,inscriptos
from deportes
join inscriptos
on deportes.codigo=inscriptos.deporte
where deportes.nombre='tenis';
5- Verifique las eliminaciones.
6- El profesor "Carlos García" renunció al club. Se quiere borrar a dicho profesor de la
tabla "profesores" y eliminar todos los deportes que dictaba "Carlos García", además, de todas las
inscripciones a todos los deportes que dictaba dicho profesor:
delete inscriptos,profesores,deportes
from inscriptos
join deportes
on deportes.codigo=inscriptos.deporte
join profesores
on deportes.profesor=profesores.codigo
where profesores.nombre='Carlos Garcia';
7- Verifique las eliminaciones en todas las tablas involucradas.