lab26.06.2012

6
LABORATORIO PLSQL 25.06.2012 Integrantes: Febe Moena Elizabeth Morales Andrea Uribe Profesor: Cristian Salazar

Upload: andrea-ampuero

Post on 26-Jun-2015

173 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Lab26.06.2012

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

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

Page 2: Lab26.06.2012

- Crear un procedimiento para agregar Ciudades.

create or replace procedure ICiudad(codigo_ciudad in number, Ciudad in varchar2) isbegin INSERT INTO Ciudad (Id_Ciudad, Nombre) VALUES (codigo_ciudad, Ciudad); COMMIT;end ICiudad;

begin iciudad(codigo_ciudad => :codigo:ciudad, ciudad => :ciudad);end;

- Crear un procedimiento para agregar Campus.

create or replace procedure icampus(codigo_campus in number, campus in varchar2, codigo_ciudad in number) isbegin INSERT INTO Campus (id_campus, Nombre,id_ciudad) VALUES(codigo_campus, campus, codigo_ciudad); COMMIT;end icampus;

begin icampus(codigo_campus => :codigo_campus, campus => :campus, codigo_ciudad => :codigo_ciudad);end;

- Crear un procedimiento para agregar Carreras

create or replace procedure icarrera(codigo_carrera in number, carrera in varchar2, codigo_campus in number) isbegin INSERT INTO carreras (id_carrera, Nombre, id_campus) VALUES (codigo_carrera, carrera, codigo_campus); COMMIT;end icarrera;

begin icarrera(codigo_carrera => :codigo_carrera, carrera => :carrera, codigo_campus => :codigo_campus);end;

Page 3: Lab26.06.2012

- Crear un procedimiento para agregar Estudiantes

create or replace procedure iestudiantes(rut in number, nombres_e in varchar2, apellidos_e in varchar2, edad_e in number, fono_e in number, direccion_e in varchar2, id_carrera_e in number) isbegin INSERT INTO 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;end iestudiantes;

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.

create or replace procedure actEdad(rut in number, edad_e in number) isbegin UPDATE estudiantes SET edad = edad_e where rut_est = rut; COMMIT;end actEdad;

begin actedad(rut => :rut, edad_e => :edad_e);end;

Page 4: Lab26.06.2012

3.- Realice una función que entregue la edad promedio de los estudiantes de “PED. EN EDUCACIÓN DIFERENCIAL”.

create or replace function edadpromedio return number is Resultado number;begin Select sum(edad) / count(*) INTO Resultado FROM estudiantes where id_carrera = 45; return Resultado;end edadpromedio;

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.

create or replace function SUMA_TEJA return number is Result number;begin SELECT SUM(e.edad) INTO Result from Estudiantes e, carreras c where c.id_carrera = e.id_carrera and id_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.

create or replace function CUENTA_TEJA return number is Result number;begin SELECT count(*) INTO Result from Estudiantes e, Carreras c where e.id_carrera = c.id_carrera and id_campus = 2; return Result;end CUENTA_TEJA;

begin :result := cuenta_teja;end;

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;

Page 5: Lab26.06.2012

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:

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 número total de estudiantes de cada uno de los campus de forma similar al ejercicio 7.

SELECT cs.nombre as CAMPUS, count(e.RUT_EST) as N_ESTUDIANTES FROM Estudiantes e, Carreras c, Campus cs where e.id_carrera = c.id_carrera and c.id_campus = cs.id_campus GROUP BY cs.nombre;

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_ESTUDIANTES FROM Estudiantes e, Carreras c, Campus cs, Ciudad ci where e.id_carrera = c.id_carrera and c.id_campus = cs.id_campus and cs.id_ciudad = ci.id_ciudad GROUP BY ci.nombre;