laboratorio 26.06.2012

5
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

Upload: elizabeth-morales

Post on 11-Mar-2016

213 views

Category:

Documents


1 download

DESCRIPTION

Laboratorio consultas PLSQL

TRANSCRIPT

Page 1: Laboratorio 26.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

Page 2: Laboratorio 26.06.2012

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

- Crear un procedimiento para agregar Ciudades.

create or replace procedure ICiudad(codigo_ciudad in number, Ciudad in varchar2) is

begin

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) is

begin

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) is

begin

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,

Page 3: Laboratorio 26.06.2012

codigo_campus => :codigo_campus);

end;

- 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) is

begin

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) is

begin

UPDATE estudiantes SET edad = edad_e where rut_est = rut;

COMMIT;

end actEdad;

begin

actedad(rut => :rut,

edad_e => :edad_e);

end;

Page 4: Laboratorio 26.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;

Page 5: Laboratorio 26.06.2012

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:

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;