1. UNIVERSIDAD AUSTRAL DE CHILE
FACULTAD DE CIENCIAS ECONÓMICAS Y ADMINISTRATIVAS
INSTITUTO DE ADMINISTRACIÓN
ADMI 273
GUIA DE REPASO
PLSQL-ORACLE
Integrante:
Makarena Ruiz H.
Profesor:
Cristian Salazar C.
Ayudante:
José Luis Carrasco
Asignatura:
Sistemas de Información Empresarial
Valdivia, 29 de junio del 2012
2. 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.
CREATE OR REPLACE PROCEDURE AGREGAR_CAMPUS(ID_CAMPUS IN NUMBER,
ID_CIUDAD IN NUMBER,
NOM_CAMPUS VARCHAR2) IS
BEGIN
INSERT INTO CAMPUS
(ID_CAMPUS, ID_CIUDAD, NOMBRE)
VALUES
(ID_CAMPUS, ID_CIUDAD, NOM_CAMPUS);
COMMIT;
END AGREGAR_CAMPUS;
2. Realice un procedimiento que actualice la edad de los estudiantes a partir de su RUT.
CREATE OR REPLACE PROCEDURE AGREGAR_CARRERA(ID_CARRERA IN NUMBER,
ID_CAMPUS IN NUMBER,
NOM_CARRERA VARCHAR2) IS
BEGIN
INSERT INTO CARRERAS
(ID_CARRERA, ID_CAMPUS, NOMBRE)
VALUES
(ID_CARRERA,ID_CAMPUS, NOM_CARRERA);
COMMIT;
END AGREGAR_CARRERA;
3. Realice una función que entregue la edad promedio de los estudiantes de “PED. EN
EDUCACIÓN DIFERENCIAL”.
CREATE OR REPLACE PROCEDURE AGREGAR_ESTUDIANTES(RUT_EST IN NUMBER,
NOMBRES IN VARCHAR2,
APELLIDOS IN VARCHAR2,
EDAD IN NUMBER,
3. DIRECCION IN VARCHAR2,
ID_CARRERA IN NUMBER) IS
BEGIN
INSERT INTO ESTUDIANTES
(RUT_EST, NOMBRES, APELLIDOS, EDAD, DIRECCION, ID_CARRERA)
VALUES
(RUT_EST, NOMBRES, APELLIDOS, EDAD, DIRECCION, ID_CARRERA);
COMMIT;
END AGREGAR_ESTUDIANTES;
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 PROCEDURE ACTUALIZAR_EDAD(RUT_EST_NUEVO IN NUMBER,
EDAD_ACTUAL IN NUMBER) IS
BEGIN
UPDATE ESTUDIANTES
SET EDAD = EDAD_ACTUAL
WHERE RUT_EST = RUT_EST_NUEVO;
COMMIT;
END ACTUALIZAR_EDAD;
5. Realice una función que cuente los estudiantes del campus ISLA TEJA. La función debe
llamarse CUENTA_TEJA.
CREATE OR REPLACE FUNCTION PROM_EDAD_EST RETURN NUMBER IS
PROMEDIO_EDAD NUMBER;
BEGIN
SELECT AVG(E.EDAD)
INTO PROMEDIO_EDAD
FROM ESTUDIANTES E, CARRERAS C
WHERE E.ID_CARRERA = C.ID_CARRERA
AND C.ID_CARRERA = 45;
RETURN PROMEDIO_EDAD;
END PROM_EDAD_EST;
4. 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;
CREATE OR REPLACE FUNCTION SUMA_TEJA RETURN NUMBER IS
SUMA_EDAD_TEJA NUMBER;
BEGIN
SELECT SUM(E.EDAD)
INTO SUMA_EDAD_TEJA
FROM ESTUDIANTES E, CARRERAS C, CAMPUS CA
WHERE E.ID_CARRERA = C.ID_CARRERA
AND C.ID_CAMPUS = CA.ID_CAMPUS
AND CA.NOMBRE = 'ISLA TEJA';
RETURN SUMA_EDAD_TEJA;
END SUMA_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: SELECT c.NOMBRE
as CARRERA,count(e.RUT_EST) as N_ESTUDIANTES FROM ESTUDIANTES e, CARRERAS c
wheree.ID_CARRERA = c.ID_CARRERA GROUP BY c.NOMBRE.
CREATE OR REPLACE FUNCTION CUENTA_TEJA RETURN NUMBER IS
SUMA_EST_TEJA NUMBER;
BEGIN
SELECT COUNT(*)
INTO SUMA_EST_TEJA
FROM ESTUDIANTES E, CARRERAS C, CAMPUS CA
WHERE E.ID_CARRERA = C.ID_CARRERA
AND C.ID_CAMPUS = CA.ID_CAMPUS
AND CA.NOMBRE = 'ISLA TEJA';
RETURN SUMA_EST_TEJA;
END CUENTA_TEJA;
8. Entregue el número total de estudiantes de cada uno de los campus de forma similar al
ejercicio 7.
SELECT CA.NOMBRE AS CAMPUS, COUNT(E.RUT_EST) AS N_EST_X_CAMPUS
FROM ESTUDIANTES E, CARRERAS C, CAMPUS CA
WHERE E.ID_CARRERA = C.ID_CARRERA
AND C.ID_CAMPUS = CA.ID_CAMPUS
GROUP BY CA.NOMBRE;
5. 9. Entregue el número total de estudiantes de cada una de las ciudades de forma similar al
ejercicio 7.
SELECT CI.NOMBRE AS CIUDAD, COUNT(E.RUT_EST) AS N_EST_X_CIUDAD
FROM ESTUDIANTES E, CARRERAS C, CAMPUS CA, CIUDAD CI
WHERE E.ID_CARRERA = C.ID_CARRERA
AND C.ID_CAMPUS = CA.ID_CAMPUS
AND CA.ID_CIUDAD = CI.ID_CIUDAD
GROUP BY CI.NOMBRE