laboratorio nº3 -vistas,funciones,dml

6

Click here to load reader

Upload: soledad-burgos

Post on 14-Jun-2015

711 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Laboratorio nº3 -vistas,funciones,dml

ADMI 273

Soledad Burgos

Pamela Luengo

30/05/2011

Tarea Nº3: Vistas, Funciones, DML

Page 2: Laboratorio nº3 -vistas,funciones,dml

I. Vista Considerar los siguientes puntos para construir una vista que despliegue la siguiente

información:

Los estudiantes que tienen libros a la fecha de: 02/05/2011

Se debe entregar el RUT, NOMBRE y APELLIDOS del estudiante, además del NOMBRE

de la carrera a la cual pertenece.

Además se debe entregar qué libro tiene prestado, indicando CODIGO, TITULO y AÑO,

el NOMBRE y APELLIDO del autor, la EDITORIAL y su PAIS, indicar en qué biblioteca se

encuentra, y de qué tipo es.

Se debe indicar que funcionario realizo la transacción, con RUT, NOMBRE y APELLIDO.

Además deberá indicarse la FECHA de PRESTAMO y la FECHA de ENTREGA de éste.

NOTA: deberá añadir ALIAS al nombre del estudiante, del funcionario, del autor y de la

carrera para diferenciarlos.

create or replace view datos_estud as

select e.nombres as "nombre estudiante",

e.apellidos as "apellido estudiante",

e.rut_est as "rut estudiante",

c.nombre as "nombre carrera",

p.fecha_e as "fecha entrega",

p.fecha_p as "fecha prestamo",

l.cod_libro,

l.titulo,

l.agno as "Año",

ed.nombre as " edicion",

ed.pais,

a.nombres as "nombre autor",

a.apellidos as "apellido autor",

f.nombres as "nombre funcionario",

f.apellidos as "apellido funcionario",

f.rut_func as "rut funcionario",

b.biblioteca

from estudiantes e,

carreras c,

prestamo p,

libros l,

editoriales ed,

autores a,

funcionarios f,

biblioteca b

where e.id_carrera=c.id_carrera

and p.rut_est=e.rut_est

and l.cod_libro=p.cod_libro

and ed.id_edit=l.id_edit

and l.rut_autor=a.rut_autor

and f.rut_func=p.rut_func

and b.id_biblio=l.id_biblio

and p.fecha_e >='02/05/2011'

Datos que se van a

mostrar al ejecutar la

vista

Tablas de las que se

extraen los datos

Cruce de tablas

Condición de fecha

Page 3: Laboratorio nº3 -vistas,funciones,dml

Como se puede ver en la imagen, un total de 15 estudiantes tenían libros prestados hasta el

02/05/2011.

II. Funciones a) Que entregue el número de estudiante de las carreras de Ing. Comercial y Auditoría.

create or replace function alumnos_aud_com return integer is

Result integer;

begin

select count(*) into Result

from estudiantes

where estudiantes.id_carrera=1

or estudiantes.id_carrera=2;

return(Result);

end alumnos_aud_com;

Page 4: Laboratorio nº3 -vistas,funciones,dml

b) Que entregue el número de veces que se ha prestado un libro a un estudiante, entre

un rango de fechas. (Parámetros de entrada: RUT_ESTUDIANTE, CODIGO_LIBRO,

fecha1, fecha2)

create or replace function prestamos_estudiantes(rut in number, codigo in number, fecha_inicio in

date, fecha_termino in date) return integer is

Result integer ;

begin

select count(*) into result

from estudiantes e,

prestamo p

where e.rut_est=p.rut_est

and p.fecha_p=fecha_inicio

or p.fecha_p=fecha_termino

and e.rut_est=rut

and p.cod_libro=codigo;

return(Result);

end prestamos_estudiantes;

Page 5: Laboratorio nº3 -vistas,funciones,dml

III. DML (Insert-Update-Delete) a) Que permita agregar un estudiante.

b) Que elimine el registro de un funcionario, teniendo como parámetro de

entrada su RUT.

Insert into estudiantes (rut_est, nombres, apellidos, edad, fono, id_carrera)

values (1324534564, 'paulina', 'godoy', 34, 202020, 2);

commit;

Delete from funcionarios f

Where f.rut_func= 87459535;

Commit;

Page 6: Laboratorio nº3 -vistas,funciones,dml

c) Que permita actualizar la información de un estudiante: EDAD, FONO, DIRECCION,

conociendo su RUT.

update estudiantes e

set e.edad=25,

e.fono=252525,

e.direccion= 'calle la loca 666'

where e.rut_est=165640276;

commit;