1. Universidad Austral de Chile
Facultad de Ciencias Económicas y Administrativas
Instituto de Administración
Escuela de Ingeniería Comercial
ADMI 273
Tarea Final Ayudantía
Curso: Sistema de Información Empresarial
Profesor: Cristian Salazar
Ayudante: José Luis Daniel Carrasco
Integrante:
Diego Nauto C.
Valdivia, 29 de Junio de 2012.
2. ADMI273-ADMI273 Universidad Austral de Chile.
Actividades.
1.- Realice una cadena de inserciones, esto es:
Crear un procedimiento para agregar Ciudades.
Crear un procedimiento para agregar Campus.
Crear un procedimiento para agregar Carreras
Crear un procedimiento para agregar Estudiantes.
Respuestas:
create or replace procedure agrega_ciudad(id_ciudad in number,
nom_ciudad in varchar2)is begin
insert into ciudad (id_ciudad, nombre)
values (id_ciudad, nom_ciudad);
commit;
end agrega_ciudad;
create or replace procedure agrega_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 agrega_campus;
create or replace procedure agrega_carrera(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 agrega_carrera;
create or replace procedure agrega_estudiante(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 agrega_estudiant
3. 2.- Realice un procedimiento que actualice la edad de los estudiantes a partir de su RUT.
Create or replace procedure actualiza_rut_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_rut_edad;
3.- Realice una función que entregue la edad promedio de los estudiantes de “PED. EN
EDUCACIÓN DIFERENCIAL”.
create or replace function est_diferencial(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 est_diferencial;
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.
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.
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;
Lo que nos da lo primero escrito, es el promedio de edad de
los diferentes estudiantes del campus Isla Teja, dejándolo en
una lista diferente que le da nombre a este valor como NX.
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
Selecciona el nombre de cada carrera como columna de carreras
y entrega el número de estudiantes por carrera desde la tabla
carreras y estudiantes esto agrupado por nombre de cada
carrera.
8.- Entregue el número total de estudiantes de cada uno de los campus de forma similar al
ejercicio 7.
SELECT cs.nombre as campus,count(e.RUT_EST) as N_ESTUDIANTES
FROM ESTUDIANTES e, CARRERAS c, CAMPUS cs
where e.ID_CARRERA = c.ID_CARRERA
and c.id_campus = cs.id_campus
GROUP BY cs.NOMBRE
5. 9.- Entregue el número total de estudiantes de cada una de las ciudades de forma similar
al ejercicio 7.