1. Universidad Austral de Chile
Facultad de Ciencias Económicas y Administrativas
Ingeniería Comercial
Sistema de Información Empresarial
Guía de laboratorio N° 4
PLSQL Developer
Asignatura:
Sistema de información empresarial
Profesor:
Cristian Salazar
Profesor Ayudante:
José Luis Carrasco
Estudiante:
Mónica Navarrete
JUNIO 2012 - VALDIVIA
2. Ejercicios Propuestos:
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.
2.- Realice un procedimiento que actualice la edad de los estudiantes a partir de su RUT.
3.- Realice una función que entregue la edad promedio de los estudiantes de “PED. EN
EDUCACIÓN 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.
5.- Realice una función que cuente los estudiantes del campus ISLA TEJA. La función debe llamarse
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;
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.
9.- Entregue el número total de estudiantes de cada una de las ciudades de forma similar al
ejercicio 7.
3. Desarrollo:
1)create or replace procedure campus_nuevo(id_campus in number, nom_campus in varchar2) is
begin
insert into campus(id_campus, nombre)
values (id_campus, nom_campus);
commit;
end campus_nuevo;
create or replace procedure carreras_nueva(id_carrera in number, nom_carrera in number) is
begin
insert into carreras(id_carrera, nombre)
values(id_carrera, nom_carrera);
commit;
end carreras_nueva;
4. create or replace procedure ciudad_nueva(id_ciudad in number, nom_ciudad in varchar2) is
begin
insert into ciudad(id_ciudad, nombre)
values (id_ciudad, nom_ciudad);
commit;
end ciudad_nueva;
create or replace procedure estudiante_nuevo(rut_est in number, nombres in varchar2, apellidos
in varchar2, edad in number, fono in number, direccion in varchar2) is
begin
insert into estudiantes (rut_est, nombres, apellidos, edad, fono, direccion)
values (rut_est, nombres, apellidos, edad, fono, direccion);
commit;
end estudiante_nuevo;
5. 2)create or replace procedure actual_edad(rut_est_act in number, edad_est in number) is
begin
update estudiantes
set edad = edad_est
where rut_est = rut_est_act;
commit;
end actual_edad;
3)create or replace function edad_promedio return number is
Result number ;
begin
select avg((e.edad)) into result
from estudiantes e, carreras c
where c.id_carrera = e.id_carrera
and e.id_carrera = 45;
return(Result);
end edad_promedio;
6. 4)create or replace function suma_teja return number is
Result number ;
begin
select sum(e.edad) into result
from estudiantes e, campus cs, carreras c
where e.id_carrera = c.id_carrera
and cs.id_campus = c.id_campus
and cs.nombre = 'ISLA TEJA';
return(Result);
end suma_teja;
5)create or replace function cuenta_teja return number is
Result number;
begin
select count(e.rut_est) into result
from estudiantes e, carreras c, campus cs
where e.id_carrera = c.id_carrera
and c.id_campus = cs.id_campus
and cs.nombre = 'ISLA TEJA';
return(Result);
end cuenta_teja;
7. 6)create or replace function consulta return number is
Result number;
begin
select (suma_teja/cuenta_teja) as NX into result
from dual;
return(Result);
end consulta;
Arroja el promedio de edad de los estudiantes que existe en la ISLA TEJA
7)CREATE OR REPLACE VIEW EST_CARRERA AS
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. 8)CREATE OR REPLACE VIEW EST_CAMPUS AS
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
9)CREATE OR REPLACE VIEW EST_CIUDAD AS
SELECT ci.NOMBRE as CIUDAD,count(e.RUT_EST) as N_ESTUDIANTES
FROM ESTUDIANTES e, CARRERAS c, CAMPUS cs, CIUDAD ci
where e.ID_CARRERA = c.ID_CARRERA
and c.id_campus = cs.id_campus
and cs.id_ciudad = ci.id_ciudad
GROUP BY ci.NOMBRE