ayudantia sql

7
Ayudantía: consultas, procedimientos y funciones en SQL Curso: Sistema de Información Empresarial Profesor: Cristian Salazar Integrantes: Carlos Mancilla Valdivia, Junio de 2012.

Upload: carlos-mancilla

Post on 25-Mar-2016

215 views

Category:

Documents


1 download

DESCRIPTION

ejercicios resueltos funciones, consultas, procedimientos, sql

TRANSCRIPT

Ayudantía: consultas, procedimientos y funciones en SQL

Curso: Sistema de Información Empresarial

Profesor: Cristian Salazar

Integrantes:

Carlos Mancilla

Valdivia, Junio de 2012.

Carlos Mancilla – Ing. Comercial

Ejercicios Propuestos: 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 agrega_ciudad(id_ciudad in number, nom_ciudad in varchar2)is

begin

insert into ciudad (id_ciudad, nombre)

values (id_ciudad, nom_ciudad);

commit;

end agrega_ciudad;

create or replace procedure agrega_campus(id_campus in number, nom_campus in varchar2, id_ciudad in number)is

begin

insert into campus (id_campus, nombre, id_ciudad)

values (id_campus, nom_campus, id_ciudad);

commit;

end agrega_campus;

create or replace procedure agrega_carrera(id_carrera in number, nom_carrera in varchar2, id_campus in number)is

begin

insert into carreras (id_carrera, nombre, id_campus)

values (id_carrera, nom_carrera, id_campus);

commit;

end agrega_carrera;

create or replace procedure agrega_estudiante(rut_est in number, nom_estudiante in varchar2, nom_apellido in

varchar2, edad in number, fono in number, direccion in varchar2, id_carrera in number)is

begin

insert into estudiantes (rut_est, nombres, apellidos, edad, fono, direccion, id_carrera)

values (rut_est, nom_estudiante, nom_apellido, edad, fono, direccion, id_carrera);

commit;

end agrega_estudiante;

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

create or replace procedure actualiza_rut_edad(rut_est_act in number, edad_act in number) is

begin

update estudiantes

set edad = edad_act

where rut_est = rut_est_act;

commit;

Carlos Mancilla – Ing. Comercial

end actualiza_rut_edad;

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

create or replace function est_diferencial(nombre_carrera in varchar2)

return number is

valor_est_diferencial number;

begin

select AVG(e.edad)

into valor_est_diferencial

from estudiantes e, carreras c

where e.id_carrera = c.id_carrera

and c.nombre = nombre_carrera;

return valor_est_diferencial;

end est_diferencial;

Carlos Mancilla – Ing. Comercial

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(nombre_campus in varchar2)

return number is

valor_sum_teja number;

begin

select sum(e.edad)

into valor_sum_teja

from estudiantes e, carreras c, campus cs

where e.id_carrera = c.id_carrera

and c.id_campus = cs.id_campus

and cs.nombre = nombre_campus;

return valor_sum_teja;

end suma_teja;

Carlos Mancilla – Ing. Comercial

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(nombre_campus in varchar2)

return number is

valor_cuenta_teja number;

begin

select count(*)

into valor_cuenta_teja

from estudiantes e, carreras c, campus cs

where e.id_carrera = c.id_carrera

and c.id_campus = cs.id_campus

and cs.nombre = nombre_campus;

return valor_cuenta_teja;

end cuenta_teja;

Carlos Mancilla – Ing. Comercial

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;

Promedio de edad de los estudiantes del campus Isla Teja, dejándolo en una lista que nombra este valor como NX

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

Selección el nombre de las carreras como columna carreras y entregue el número de estudiantes por carrera desde la

tabla carreras y estudiantes esto agrupado por nombre de carreras.

8.- Entregue el número total de estudiantes de cada uno de los campus de forma similar al ejercicio 7.

Carlos Mancilla – Ing. Comercial

9.- Entregue el número total de estudiantes de cada una de las ciudades de forma similar al ejercicio 7.