You are on page 1of 6

UNIVERSIDAD AUSTRAL DE CHILE FACULTAD DE CIENCIAS ECONMICAS Y ADMINISTRATIVAS ESCUELA DE INGENIERA COMERCIAL

Laboratorio de ayudanta 25_06: SQL.


Sistema de Informacin Empresarial.
ADMI273

Autor Fabin Aguilar Salazar Rodrigo Contreras Coronado Profesor Cristian Salazar C.
Ayudante Jos Luis Carrasco

Valdivia, Junio 2012

Ejercicios Propuestos:

1. Realice una cadena de inserciones, esto es:

a) Crear un procedimiento para agregar Ciudades.


CREATE OR REPLACE PROCEDURE AGREGAR_CIUDAD(ID_CIUDAD IN NUMBER, NOM_CIUDAD VARCHAR2) IS

a)

BEGIN INSERT INTO CIUDAD (ID_CIUDAD, NOMBRE) VALUES (ID_CIUDAD, NOM_CIUDAD); COMMIT; END AGREGAR_CIUDAD;

b) Crear un procedimiento para agregar Campus.

b)

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;

c) Crear un procedimiento para agregar Carreras

c)

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;

d) Crear un procedimiento para agregar Estudiantes.

CREATE OR REPLACE PROCEDURE AGREGAR_ESTUDIANTES(RUT_EST IN NUMBER, NOMBRES IN VARCHAR2, APELLIDOS IN VARCHAR2, EDAD IN NUMBER, 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;
d)

2.- Realice un procedimiento que actualice la edad de los estudiantes a partir de su RUT.
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;

3.- Realice una funcin que entregue la edad promedio de los estudiantes de PED. EN EDUCACIN DIFERENCIAL.
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.- Realice una funcin que entregue la suma de edades de los estudiantes del campus ISLA TEJA. La funcin debe llamarse SUMA_TEJA.
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;

5.- Realice una funcin que cuente los estudiantes del campus ISLA TEJA. La funcin debe llamarse CUENTA_TEJA.
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;

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 nmero total de estudiantes de cada una de las carreras, mostrando el nombre de la carrera y su nmero 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 nmero total de estudiantes de cada uno de los campus de forma similar al ejercicio 7.
SELECT FROM WHERE AND GROUP CA.NOMBRE AS CAMPUS, COUNT(E.RUT_EST) AS N_EST_X_CAMPUS ESTUDIANTES E, CARRERAS C, CAMPUS CA E.ID_CARRERA = C.ID_CARRERA C.ID_CAMPUS = CA.ID_CAMPUS BY CA.NOMBRE;

9.- Entregue el nmero total de estudiantes de cada una de las ciudades de forma similar al ejercicio 7.
SELECT FROM WHERE AND AND GROUP CI.NOMBRE AS CIUDAD, COUNT(E.RUT_EST) AS N_EST_X_CIUDAD ESTUDIANTES E, CARRERAS C, CAMPUS CA, CIUDAD CI E.ID_CARRERA = C.ID_CARRERA C.ID_CAMPUS = CA.ID_CAMPUS CA.ID_CIUDAD = CI.ID_CIUDAD BY CI.NOMBRE

You might also like