1. LABORATORIO PLSQL
25.06.2012
Integrantes: Febe Moena
Elizabeth Morales
Andrea Uribe
Profesor: Cristian Salazar
Ayudante:José Luis Carrasco
Curso: ADMI 273
Valdivia 26 de Junio, 2012
2. 1.- Realice una cadena de inserciones, esto es:
- Crear un procedimiento para agregar Ciudades.
createorreplaceprocedureICiudad(codigo_ciudadinnumber, Ciudad invarchar2) is
begin
INSERTINTO Ciudad (Id_Ciudad, Nombre) VALUES (codigo_ciudad, Ciudad);
COMMIT;
endICiudad;
begin
iciudad(codigo_ciudad => :codigo:ciudad,
ciudad => :ciudad);
end;
- Crear un procedimiento para agregar Campus.
createorreplaceprocedureicampus(codigo_campusinnumber, campus invarchar2,
codigo_ciudadinnumber) is
begin
INSERTINTO Campus (id_campus, Nombre,id_ciudad)
VALUES(codigo_campus, campus, codigo_ciudad);
COMMIT;
endicampus;
begin
icampus(codigo_campus => :codigo_campus,
campus => :campus,
codigo_ciudad => :codigo_ciudad);
end;
- Crear un procedimiento para agregar Carreras
createorreplaceprocedureicarrera(codigo_carrerainnumber,
carrera invarchar2,
codigo_campusinnumber) is
begin
INSERTINTO carreras
(id_carrera, Nombre, id_campus)
VALUES
(codigo_carrera, carrera, codigo_campus);
COMMIT;
endicarrera;
begin
icarrera(codigo_carrera => :codigo_carrera,
carrera => :carrera,
3. codigo_campus => :codigo_campus);
end;
- Crear un procedimiento para agregar Estudiantes
createorreplaceprocedureiestudiantes(rutinnumber,
nombres_einvarchar2,
apellidos_einvarchar2,
edad_einnumber,
fono_einnumber,
direccion_einvarchar2,
id_carrera_einnumber) is
begin
INSERTINTO Estudiantes
(Rut_Est, Nombres, Apellidos, Edad, Fono, Direccion, Id_Carrera)
VALUES
(rut,
nombres_e,
apellidos_e,
edad_e,
fono_e,
direccion_e,
id_carrera_e);
COMMIT;
endiestudiantes;
begin
iestudiantes(rut => :rut,
nombres_e => :nombres_e,
apellidos_e => :apellidos_e,
edad_e => :edad_e,
fono_e => :fono_e,
direccion_e => :direccion_e,
id_carrera_e => :id_carrera_e);
end;
2.- Realice un procedimiento que actualice la edad de los estudiantes a partir de su RUT.
createorreplaceprocedureactEdad(rut innumber, edad_einnumber) is
begin
UPDATEestudiantesSETedad = edad_ewhererut_est = rut;
COMMIT;
endactEdad;
begin
actedad(rut => :rut,
edad_e => :edad_e);
end;
4. 3.- Realice una función que entregue la edad promedio de los estudiantes de “PED. EN
EDUCACIÓN DIFERENCIAL”.
createorreplacefunctionedadpromedioreturnnumberis
Resultadonumber;
begin
Selectsum(edad) / count(*)
INTOResultado
FROMestudiantes
whereid_carrera = 45;
returnResultado;
endedadpromedio;
begin
:result := edadpromedio;
end;
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.
createorreplacefunction SUMA_TEJA returnnumberis
Resultnumber;
begin
SELECTSUM(e.edad)
INTOResult
fromEstudiantes e, carreras c
wherec.id_carrera = e.id_carrera
andid_campus = 2;
return(Result);
end SUMA_TEJA;
begin
:result := suma_teja;
end;
5.- Realice una función que cuente los estudiantes del campus ISLA TEJA. La función debe
llamarse CUENTA_TEJA.
createorreplacefunction CUENTA_TEJA returnnumberis
Resultnumber;
begin
SELECTcount(*)
INTOResult
fromEstudiantes e, Carreras c
wheree.id_carrera = c.id_carrera
andid_campus = 2;
returnResult;
end CUENTA_TEJA;
begin
:result := cuenta_teja;
end;
5. 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;
Esta consulta arroja el promedio de edad de los estudiantes del campus Isla Teja:
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:
SELECTc.NOMBREas CARRERA, count(e.RUT_EST) as N_ESTUDIANTES
FROM ESTUDIANTES e, CARRERAS c
wheree.ID_CARRERA = c.ID_CARRERA
GROUPBYc.NOMBRE
8.- Entregue el número total de estudiantes de cada uno de los campus de forma similar al
ejercicio 7.
SELECTcs.nombreas CAMPUS, count(e.RUT_EST) as N_ESTUDIANTES
FROMEstudiantes e, Carreras c, Campus cs
wheree.id_carrera = c.id_carrera
andc.id_campus = cs.id_campus
GROUPBYcs.nombre;
9.- Entregue el número total de estudiantes de cada una de las ciudades de forma similar al
ejercicio 7.
SELECTci.nombreas CIUDAD, count(e.RUT_EST) as N_ESTUDIANTES
FROM Estudiantes e, Carreras c, Campus cs, Ciudad ci
wheree.id_carrera = c.id_carrera
andc.id_campus = cs.id_campus
andcs.id_ciudad = ci.id_ciudad
GROUPBYci.nombre;