PLSQL permite almacenar y consultar información de una base de datos de manera similar a ACCESS. Las consultas SQL se pueden guardar como vistas para su reuso. El documento proporciona ejemplos de cómo crear vistas para obtener estudiantes de diferentes carreras, libros prestados, y otros datos almacenados en tablas relacionadas de una base de datos de una biblioteca universitaria.
2. PLSQL
• Es un programa de base de datos, que permitirá
guardar información de cualquier tipo. Es similar al
ACCESS
• Cuando se desee obtener información de algo “X” se
realizará la CONSULTA….
Consulta …
select
from
O lo que se desee preguntar
3. VISTA
• Cuando estas consultas se requieran guardar
se hará una VISTA, la cual se escribirá así
• Create or replace (nombre_vista) as
(consulta_sql)
select
………
4. Ejemplo: realizar las siguientes vistas
Item 1
a) Que entregue los estudiantes que son de Ing. Comercial (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
create or replace view estudiantes_comercial as
select e.nombres, e.apellidos, c.nombre as carrera, cc.nombre campus
from estudiantes e, carreras c, campus cc
where c.id_carrera=e.id_carrera
and cc.id_campus=c.id_campus
and c.nombre='ing. comercial‘
b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del estudiante,
NOMBRE de la carrera y NOMBRE del campus).
create or replace view est_auditoria as
select e.nombres, e.apellidos, c.nombre as auditoria, cc.nombre as campus
from estudiantes e, carreras c, campus cc
where c.id_carrera=e.id_carrera
and cc.id_campus=c.id_campus
and c.nombre='auditoria'
5. c) Que entregue los estudiantes que se atrasaron en la entrega de los libros(RUT, NOMBRES,
APELLIDOS y FONO).
create or replace view est_prest as
select e.rut_est, e.nombres as est, e.apellidos as est_2, e.fono as fon_est, p.fecha_e
from estudiantes e, prestamo p
where e.rut_est=p.rut_est and p.fecha_e<sysdate
d) La cantidad de libros prestados.
create or replace view libr_prest as
select count(*)
from prestamo
e) Los libros de editoriales extranjeras (CODIGO,TITULO , AÑO y PAIS de ORIGEN).
create or replace view lib_edi as
select l.cod_libro, l.titulo, l.agno, e.pais
from libros l, editoriales e
where l.id_edit=e.id_edit and e.pais<>'chile'
f) Los libros que son de reserva (CODIGO, TITULO y AÑO del LIBRO, NOMBRE de la biblioteca, el
NOMBRE y APELLIDO del autor, el NOMBRE de la editorial y el PAIS ).
create or replace view lib_reserva as
select l.cod_libro, l.titulo, l.agno, b.biblioteca, a.nombres, a.apellidos, e.nombre, e.pais
from libros l, biblioteca b, autores a, editoriales e, tipo t
where l.id_biblio=b.id_biblio and l.rut_autor=a.rut_autor and l.id_edit=e.id_edit and
l.id_tipo=t.id_tipo and t.tipo_p='reserva'
6. Item 2
2.-Se requiere obtener datos desde la Base de Datos y almacenarlos de forma permanente
(Vista). Se solicita:
Los estudiantes del campus Isla Teja, que tienen libros en su poder (atrasados o no).
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 que 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.
a)
CREATE OR REPLACE VIEW LIB_EST_TEJA AS
select e.nombres as est, cc.nombre as camp
from prestamo p, estudiantes e, carreras c, campus cc
where p.rut_est=e.rut_est and e.id_carrera=c.id_carrera and c.id_campus=cc.id_campus and
CC.nombre='ISLA TEJA'
7. b)
CREATE OR REPLACE VIEW EST_CARRERA AS
select e.rut_est AS r_estu, e.nombres AS nom_est, e.apellidos AS apell_ast, c.nombre AS
nom_car
from estudiantes e, carreras c
where e.id_carrera=c.id_carrera
c)
CREATE OR REPLACE VIEW LIB_PREST AS 3
select l.cod_libro AS lib, l.titulo AS lib, l.agno AS sib, a.nombres AS aut, a.apellidos AS aut,
e.nombre AS edito, e.pais AS edito , b.biblioteca AS biblio, t.tipo_p AS tip
from libros l, autores a, editoriales e, biblioteca b, tipo t, prestamo pr
where pr.cod_libro=l.cod_libro and l.rut_autor=a.rut_autor and l.id_edit=e.id_edit and
l.id_biblio=b.id_biblio and l.id_tipo=t.id_tipo
d)
CREATE OR REPLACE VIEW FUNC_PREST AS
select f.rut_func as funci, f.nombres as funci, f.apellidos as funci
from prestamo p, funcionarios f
e)
CREATE OR REPLACE VIEW FUNC_PRES_FE as
select f.rut_func as funci, f.nombres as funci, f.apellidos as funci, p.fecha_p as prest, p.fecha_e
from prestamo p, funcionarios f
8. Item 3
a) El número de Estudiantes por Carrera.
select id_carrera, count(rut_est)
from estudiantes
group by id_carrera
b) El número de Préstamos atrasados
select fecha_e, count(fecha_p)
from prestamo
group by fecha_e
having fecha_e<sysdate
c) El número de Prestamos Activos, No atrasados.
select fecha_e, count(fecha_p)
from prestamo
group by fecha_e
having fecha_e>sysdate
9. • Para mayor información, visita las páginas de
este blog, te serán muy útil para la realización
de tus trabajos.