1. Actividad Ayudantía:
Guía de repaso 25-06-2012
Sistema de Información Administrativa
Profesor Responsable: Cristian Salazar
Ayudante: Jose Luis Carrasco
Alumna: Nidia Manríquez Solís
Auditoria
2. Ejercicios Propuestos:
1.- Realice una cadena de inserciones, esto es:
- Crear un procedimiento para agregar Ciudades.
SQL: create or replace procedure agregar_ciudad(id_ciudad in number, nom_ciudad in
varchar2)is
begin
insert into ciudad (id_ciudad, nombre)
values (id_ciudad, nom_ciudad);
commit;
end agregar_ciudad;
- Crear un procedimiento para agregar Campus.
SQL: create or replace procedure agregar_campus(id_campus in number, nom_campus
in varchar2, id_ciudad in number)is
begin
insert into campus (id_campus, nombre, id_ciudad)
values (id_campus, nom_campus, id_ciudad);
commit;
end agregar_campus;
- Crear un procedimiento para agregar Carreras
SQL: create or replace procedure agregar_carreras(id_carrera in number, nom_carrera
in varchar2, id_campus in number)is
begin
insert into carreras (id_carrera, nombre, id_campus)
values (id_carrera, nom_carrera, id_campus);
commit;
end agregar_carreras;
- Crear un procedimiento para agregar Estudiantes.
SQL: create or replace procedure agregar_estudiantes(rut_est in number,
nom_estudiante in varchar2, nom_apellido in varchar2, edad in number, fono in
number, direccion in varchar2, id_carrera in number)is
begin
insert into estudiantes (rut_est, nombres, apellidos, edad, fono, direccion,
id_carrera)
values (rut_est, nom_estudiante, nom_apellido, edad, fono, direccion, id_carrera);
commit;
end agregar_estudiantes;
3. 2.- Realice un procedimiento que actualice la edad de los estudiantes a partir de su RUT.
SQL: create or replace procedure actualiza_edad(rut_est_act in number, edad_act in
number) is
begin
update estudiantes
set edad = edad_act
where rut_est = rut_est_act;
commit;
end actualiza_edad;
3.- Realice una función que entregue la edad promedio de los estudiantes de “PED. EN
EDUCACIÓN DIFERENCIAL”.
SQL: create or replace function edad_promedio(nombre_carrera in varchar2)
return number is
valor_est_diferencial number;
begin
select AVG(e.edad)
into valor_est_diferencial
from estudiantes e, carreras c
where e.id_carrera = c.id_carrera
and c.nombre = nombre_carrera;
return valor_est_diferencial;
end edad_promedio;
4.- Realice una función que entregue la suma de edades de los estudiantes del campus ISLA TEJA.
La función debe llamarse SUMA_TEJA.
SQL: create or replace function SUMA_TEJA(nombre_campus in varchar2)
return number is
valor_sum_teja number;
begin
select sum(e.edad)
into valor_sum_teja
from estudiantes e, carreras c, campus cs
where e.id_carrera = c.id_carrera
and c.id_campus = cs.id_campus
and cs.nombre = nombre_campus;
return valor_sum_teja;
end SUMA_TEJA;
4. 5.- Realice una función que cuente los estudiantes del campus ISLA TEJA. La función debe llamarse
CUENTA_TEJA.
SQL: create or replace function CUENTA_TEJA(nombre_campus in varchar2)
return number is
valor_cuenta_teja number;
begin
select count(*)
into valor_cuenta_teja
from estudiantes e, carreras c, campus cs
where e.id_carrera = c.id_carrera
and c.id_campus = cs.id_campus
and cs.nombre = nombre_campus;
return valor_cuenta_teja;
end CUENTA_TEJA;
6.- Una vez realizado 4 y 5, ejecute la siguiente consulta y describa que arroja como resultado:
SELECT (SUMA_TEJA/CUENTA_TEJA) as NX
FROM DUAL;
La consulta entrega el promedio de edades de los alumnos del Campus Teja.
5. 7.- (RESUELTO) Entregue el número total de estudiantes de cada una de las carreras, mostrando el
nombre de la carrera y su número de estudiantes respectivos:
SELECT c.NOMBRE as CARRERA,count(e.RUT_EST) as N_ESTUDIANTES
FROM ESTUDIANTES e, CARRERAS c
where e.ID_CARRERA = c.ID_CARRERA
GROUP BY c.NOMBRE
8.- Entregue el número total de estudiantes de cada uno de los campus de forma similar al
ejercicio 7.
SQL: SELECT cm.NOMBRE as NOMBRE_CARRERA,count(e.RUT_EST) as NUMERO_ESTUD
FROM ESTUDIANTES e, CARRERAS c, CAMPUS cm
where e.ID_CARRERA = c.ID_CARRERA
GROUP BY cm.NOMBRE
6. 9.- Entregue el número total de estudiantes de cada una de las ciudades de forma similar al
ejercicio 7.
SQL: SELECT ciu.NOMBRE as CAMPUS, count(e.RUT_EST) as NUMERO_ESTUD
FROM ESTUDIANTES e, CARRERAS c, CAMPUS cm, CIUDAD ciu
where e.ID_CARRERA = c.ID_CARRERA
and c.Id_Campus = cm.id_campus
and cm.Id_Ciudad = ciu.id_ciudad
GROUP BY ciu.NOMBRE