You are on page 1of 8

EJERCICIOS TALLER DE BASE DE DATOS

MODELO A CONSTRUIR, generar la siguiente base de datos:


Tablas a implementar, con sus respectivos campos y definiciones asociadas.

Alumnos: identificador del alumno, nombre y apellidos del alumno, edad y sexo
del alumno, ao de ingreso y carrera del alumno.
Asignatura: identificador y descripcin de la asignatura, cantidad de horas y
carrera de la asignatura.
Docente: identificador del docente, nombre y apellidos del docente y ao de
ingreso del docente.
Carrera: identificador y descripcin de la carrera.
Notas: identificadores del alumno, asignatura y docente, nota final y semestre de
la evaluacin.

RESOLVER
1. Construir la instruccin de creacin de cada tabla.
2. Construir los scripts de insercin de 5 registros para cada tabla.
3. Mostrar el nombre y apellido de las alumnas la carrera de Analista Programador
que tienen entre 20 y 25 aos.
4. Informar cuantos hombres cursan la carrera de Redes y Telecomunicaciones.
5. Subir 2 dcimas a todas las alumnas que cursen las asignaturas del docente Albert
Einstein.
6. Cuantos alumnos hay en cada carrera. Adems, cuantos alumnos hombres y
mujeres hay en cada carrera.
7. Que promedio de notas tienen los alumnos de Programacin II con el docente
Isaac Newton.
8. Eliminar la nota ms baja del o los alumnos hombres en la asignatura de Taller de
Base de Datos.
9. Cul es la mejor nota en la carrera de Ingeniera Informtica.
10. Que alumno (nombre y apellidos) tiene la peor nota en la asignatura de Ingeniera
de Software.
11. Indicar cuantos hombres cuyo nombre empieza con la letra D, cursan la carrera de
Administracin de Redes.
12. Bajar en un 10% la nota de los hombres de la asignatura de Programacin de
Base de Datos.
13. Crear un funcin que entregue la cantidad de alumnos hombres o mujeres que
cursan una carrera especfica. Luego haga un bloque para imprimir el resultado.
14. Crear un procedimiento almacenado que permita bajar la nota a los alumnos de
cualquier asignatura y nos informe cuantos alumnos fueron afectados. Luego
haga un bloque para ejecutar el procedimiento.

DESARROLLO

1.- Script de Creacin de tablas.


create table CARRERA (
ID_CARRERA
INT
primary key,
DESC_CARRERA
CHAR(40)
);
create table DOCENTE (
ID_DOCENTE
INT
primary key,
NOM_DOCENTE
CHAR(50),
APE_DOCENTE
CHAR(100),
INGRESO_DOCENTE
INT
);
create table ALUMNO (
ID_ALUMNO
INT
primary key,
NOM_ALUMNO
CHAR(50),
APE_ALUMNO
CHAR(100),
EDAD_ALUMNO
INT,
SEXO_ALUMNO
CHAR(1),
INGRESO_ALUMNO INT,
ID_CARRERA
INT,
constraint FK_ALUMNO foreign key (ID_CARRERA) references CARRERA
);
create table ASIGNATURA (
ID_ASIG
INT
primary key,
DESC_ASIG
CHAR(80),
HORAS_ASIG
INT,
ID_CARRERA
INT,
constraint FK_ASIG foreign key (ID_CARRERA) references CARRERA
);
create table NOTAS (
ID_ALUMNO
INT,
ID_DOCENTE
INT,
ID_ASIG
INT,
NOTA_FINAL
FLOAT,
SEMESTRE
CHAR(20),
primary key (ID_ALUMNO, ID_DOCENTE, ID_ASIG),
constraint FK_NOTA1 foreign key (ID_ALUMNO) references ALUMNO,
constraint FK_NOTA2 foreign key (ID_DOCENTE) references DOCENTE,
constraint FK_NOTA3 foreign key (ID_ASIG) references ASIGNATURA
);
2.- Crear registros en cada de tabla.

Tabla CARRERA
insert into carrera
insert into carrera
insert into carrera
insert into carrera
insert into carrera

values
values
values
values
values

Tabla ASIGNATURA
insert into asignatura
insert into asignatura
insert into asignatura
insert into asignatura
insert into asignatura
insert into asignatura
insert into asignatura
Tabla ALUMNO
insert into alumno
insert into alumno
insert into alumno
insert into alumno
insert into alumno
insert into alumno
insert into alumno
insert into alumno
insert into alumno
insert into alumno
insert into alumno
insert into alumno
Tabla DOCENTE
insert into docente
insert into docente
insert into docente
insert into docente

Tabla NOTAS
insert into notas
insert into notas
insert into notas
insert into notas

(10,'Ingenieria de Ejecucion Informatica');


(20,'Analista Programador Computacional');
(30,'Redes y Telecomunicaciones');
(40,'Tecnico en Instalaciones y Hardware');
(50,'Marketing y Publicidad');

values
values
values
values
values
values
values

values
values
values
values
values
values
values
values
values
values
values
values

values
values
values
values

(10,'Taller de Base de Datos',70,10);


(20,'Programacion en JAVA',75,10);
(30,'Ingenieria de Software',70,10);
(40,'Programacion en .NET',75,20);
(50,'Sistemas de Informacion',70,20);
(60,'Topologias de Redes',70,30);
(70,'Seguridad Informatica',75,30);

(10, 'Juan', 'Perez', 20, 'M', 2005, 10);


(20, 'Jose', 'Pavez', 22, 'M', 2006, 10);
(30, 'Luis', 'Lopez', 25, 'M', 2005, 10);
(40, 'Ana', 'Pino', 20, 'F', 2008, 10);
(50, 'Sara', 'Romo', 24, 'F', 2002, 10);
(60, 'Luz', 'Rios', 22, 'F', 2004, 10);
(70, 'David', 'Rojas', 21, 'M', 2005, 20);
(80, 'Daniel', 'Soto', 26, 'M', 2005, 20);
(90, 'Carla', 'Urra', 24, 'F', 2000, 20);
(100, 'Lucia', 'Luco', 22, 'F', 2005, 20);
(110, 'Patricia', 'Montt', 22, 'F', 2010, 20);
(120, 'Susana','Ferrer', 20, 'F', 1999, 20);

(10,
(20,
(30,
(40,

values(10,
values(10,
values(10,
values(20,

20,
30,
40,
10,

'Isaac', 'Newton', 1993);


'Nicolas', 'Copernico', 2001);
'Alejandro', 'Fleming', 1990);
'Maria', 'Curie', 1985);

10,
20,
30,
10,

5.9,
4.5,
5.7,
4.9,

'Primavera 2013');
'Primavera 2013');
'Otoo 2013');
'Primavera 2013');

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into

notas
notas
notas
notas
notas
notas
notas
notas
notas
notas
notas
notas
notas
notas
notas
notas
notas
notas

values(20,
values(20,
values(30,
values(30,
values(30,
values(40,
values(40,
values(40,
values(50,
values(50,
values(50,
values(60,
values(60,
values(60,
values(70,
values(70,
values(80,
values(80,

20,
30,
20,
30,
40,
10,
20,
40,
20,
30,
40,
10,
20,
40,
20,
30,
10,
20,

20,
30,
10,
20,
30,
10,
20,
30,
10,
20,
30,
10,
20,
30,
40,
50,
40,
50,

6.5,
5.3,
4.9,
6.5,
3.7,
4.9,
3.5,
3.3,
5.9,
6.0,
4.7,
4.0,
5.5,
6.3,
5.9,
6.0,
4.0,
5.5,

'Primavera 2013');
'Otoo 2013');
'Primavera 2013');
'Primavera 2013');
'Otoo 2013');
'Primavera 2013');
'Primavera 2013');
'Primavera 2013');
'Primavera 2013');
'Primavera 2013');
'Otoo 2013');
'Primavera 2013');
'Primavera 2013');
'Primavera 2013');
'Primavera 2013');
'Primavera 2013');
'Primavera 2013');
'Primavera 2013');

3.- SQL Consulta.


SELECT nom_alumno, ape_alumno
FROM alumno a, carrera c
WHERE a.id_carrera = c.id_carrera
AND sexo_alumno = F
AND edad_alumno BETWEEN 20 AND 25
AND desc_carrera LIKE Analista%;
4.- SQL Consulta.
SELECT count(*)
FROM alumno a, carrera c
WHERE a.id_carrera = c.id_carrera
AND sexo_alumno = M
AND desc_carrera LIKE Redes%;

5.- SQL Modifica.


UPDATE notas
SET nota_final = nota_final + 0.2
WHERE id_alumno IN ( select id_alumno
from alumno
where sexo_alumno = F )

AND id_docente IN ( select id_docente


from docente
where nom_docente like Albert%
and ape_docente like Einstein% ) ;

6.- SQL Consulta.


SELECT desc_carrera, COUNT(*)
FROM alumno a, carrera c
WHERE a.id_carrera = c.id_carrera
GROUP BY desc_carrera;
SELECT sexo_alumno, desc_carrera, COUNT(*)
FROM alumno a, carrera c
WHERE a.id_carrera = c.id_carrera
GROUP BY sexo_alumno, desc_carrera;

7.- SQL Consulta.


SELECT AVG(nota_final)
FROM asignatura a, notas n, docente d
WHERE a.id_asig = n.id_asig
AND n.id_docente = d.id_docente
AND desc_asig LIKE Prog. II%
AND nom_docente like Isaac%
AND ape_docente like Newton% ) ;

8.- SQL Elimina.


DELETE FROM notas
WHERE id_alumno IN ( select id_alumno
from alumno
where sexo_alumno = M )
AND id_asig IN ( select id_asig
from docente

where desc_asig like Taller BD% )


AND nota_final = ( select MIN(nota_final)
from alumno a, notas n, asignatura g
where a.id_alumno = n.id_alumno
and n.id_asig = g.id_asig
and sexo_alumno = M
and desc_asig like Taller BD% ) ;
9.- SQL Consulta.
SELECT MAX(nota_final)
FROM notas n, asignatura a, carrera c
WHERE n.id_asig = a.id_asig
AND a.id_carrera = c.id_carrera
AND desc_carrera LIKE Ing. Inf.%;

10.- SQL Consulta.


SELECT nom_alumno, ape_alumno
FROM alumno a, notas n, asignatura g
WHERE a.id_alumno = n.id_alumno
AND n.id_asig = g.id_asig
AND desc_asig LIKE Ing. SW%
AND nota_final = ( select MIN(nota_final)
from notas n, asignatura a
where n.id_asig = a.id_asig
and desc_asig LIKE Ing. SW% ) ;
11.- SQL Consulta.
SELECT count(*)
FROM alumno a, carrera c
WHERE a.id_carrera = c.id_carrera
AND sexo_alumno = M
AND nom_alumno LIKE D%
AND desc_carrera LIKE Adm. Redes%;
12.- SQL Modifica.
UPDATE notas
SET nota_final = nota_final * 0.9
WHERE id_alumno IN ( select id_alumno
from alumno
where sexo_alumno = M )
AND id_asig IN ( select id_asig
from asignatura
where desc_asig like Prog. BD% ) ;

FINAL!!!!
Asignatura
Funcin: Cantidad de alumnos de la asignatura
Parametro de entrada: Id asignatura
Salidas: Cantidad de alumnos que tiene cada
asignatura. Si no existe, -1. Si no tiene alumnos,
-2
1 procedimiento para crear, borrar y actualizar
un registro. Usar secuence
manejar excepciones. Si id asignatura !=nmero

You might also like