1. José Luis Alvarado Olivera
Ayudantía 25-06-2012
Ejercicios Propuestos:
1. Realice una cadena de inserciones, esto es:
Crear un procedimiento para agregar Ciudades.
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;
Crear un procedimiento para agregar Campus.
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;
Crear un procedimiento para agregar Carreras
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;
Crear un procedimiento para agregar Estudiantes.
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_estudiante;
2. José Luis Alvarado Olivera
Ayudantía 25-06-2012
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;
3. José Luis Alvarado Olivera
Ayudantía 25-06-2012
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;
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;
4. José Luis Alvarado Olivera
Ayudantía 25-06-2012
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;
Promedio de edad de los estudiantes del campus Isla Teja, dejándolo en una lista que nombra este valor como NX
7. 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
5. José Luis Alvarado Olivera
Ayudantía 25-06-2012
Selección el nombre de las carreras como columna carreras y entregue el número de estudiantes por carrera desde
la tabla carreras y estudiantes esto agrupado por nombre de carreras.
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.