laboratorio 4

14
: Karoll Elena Cruz Díaz. : José Luis Carrasco V. : Sistemas de Información Empresarial 29 de junio de 2012.

description

desarrollo de consultas SQL

Transcript of laboratorio 4

Page 1: laboratorio 4

: Karoll Elena Cruz Díaz.

: José Luis Carrasco V.

: Sistemas de Información Empresarial

29 de junio de 2012.

Page 2: laboratorio 4

Ejercicios Propuestos:

1.- Realice una cadena de inserciones, esto es:

- Crear un procedimiento para agregar Ciudades.

CREATE OR REPLACE PROCEDURE AGREGAR_CIUDADES (ID_CIUDAD IN NUMBER, NOMBRE_CIUDAD VARCHAR2)

IS

BEGIN

INSERT INTO CIUDAD (ID_CIUDAD, NOMBRE) VALUES (ID_CIUDAD, NOMBRE_CIUDAD);

COMMIT;

END AGREGAR_CIUDADES;

Page 3: laboratorio 4

Una vez testeado el procedimiento, se agrego dos ciudades para corroborar,

nombre_ciudad Lanco y Panguipulli id_ciudad 6 y 5 respectivamente. Luego se revisó en la tabla

Ciudad se comprobó que quedaron ingresadas.

- Crear un procedimiento para agregar Campus.

CREATE OR REPLACE PROCEDURE AGREGAR_CAMPUS (ID_CAMPUS IN NUMBER, ID_CIUDAD IN NUMBER,

NOMBRE_CAMPUS VARCHAR2)

IS

BEGIN

INSERT INTO CAMPUS

(ID_CAMPUS, ID_CIUDAD, NOMBRE)

VALUES

(ID_CAMPUS, ID_CIUDAD, NOMBRE_CAMPUS);

COMMIT;

END AGREGAR_CAMPUS;

Page 4: laboratorio 4

Se agrego un nuevo campus COTAPO, con un id_campus 4 e id_ciudad 5 que quedo

registrado en la tabla CAMPUS.

Page 5: laboratorio 4

- Crear un procedimiento para agregar Carreras.

CREATE OR REPLACE PROCEDURE AGREGAR_CARRERA (ID_CARRERA IN NUMBER, ID_CAMPUS IN NUMBER,

NOMBRE_CARRERA VARCHAR2)

IS

BEGIN

INSERT INTO CARRERAS

(ID_CARRERA, ID_CAMPUS, NOMBRE)

VALUES

(ID_CARRERA,ID_CAMPUS, NOMBRE_CARRERA);

COMMIT;

END AGREGAR_CARRERA;

Page 6: laboratorio 4

- Crear un procedimiento para agregar Estudiantes.

CREATE OR REPLACE PROCEDURE AGREGAR_ESTUDIANTE (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_ESTUDIANTE;

Page 7: laboratorio 4

2.- Realice un procedimiento que actualice la edad de los estudiantes a partir de su RUT.

CREATE OR REPLACE PROCEDURE ACTUALIZAR_EDAD_ESTD (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_ESTD;

Page 8: laboratorio 4

3.- Realice una función que entregue la edad promedio de los estudiantes de “PED. EN

EDUCACIÓN 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 = 30;

RETURN PROMEDIO_EDAD;

END PROM_EDAD_EST;

Page 9: laboratorio 4

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_EDAD_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_EDAD_TEJA;

Page 10: laboratorio 4

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 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;

Page 11: laboratorio 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;

Se realizo de la misma manera, pero se cambio SUMA_TEJA por SUMA_EDAD_TEJA que

fue como se guardo la función, esto arroja como resultado el promedio de las edades de los

estudiantes de la Isla Teja que es de 24, 9321200196754.

SELECT (SUMA_EDAD_TEJA/CUENTA_TEJA) as NX

FROM DUAL;

Page 12: laboratorio 4

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

Al realizar la consulta arroja los resultados correctos.

Page 13: laboratorio 4

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

Page 14: laboratorio 4

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