guía lab n°5

15
Universidad Austral de Chile Facultad de Ciencias Económicas y Administrativas Ingeniería Comercial Trabajo de sistema de información empresarial Guía de Acces, vista SQL Asignatura: Sistema de información empresarial Profesor: Cristian Salazar Integrantes: Mónica Navarrete Mauricio Rojas María Zambrano Abril 2012 - VALDIVIA

Upload: mane-zambrano

Post on 15-Mar-2016

228 views

Category:

Documents


0 download

DESCRIPTION

Trabajo de sistema de información empresarial, Guía de Acces, vista SQL

TRANSCRIPT

Page 1: Guía Lab N°5

Universidad Austral de Chile

Facultad de Ciencias Económicas y Administrativas

Ingeniería Comercial

Trabajo de sistema de información empresarial

Guía de Acces, vista SQL

Asignatura: Sistema de información empresarial

Profesor:

Cristian Salazar

Integrantes: Mónica Navarrete

Mauricio Rojas María Zambrano

Abril 2012 - VALDIVIA

Page 2: Guía Lab N°5

Introducción:

En el siguiente trabajo, se realizo con una base de datos de Acces y Visio. En la cual se realizaron

las siguientes vistas SQL.

Vista diagrama base de datos en Visio

Page 3: Guía Lab N°5

Desarrollo de laboratorio:

Para obtener todos los registros contenidos en la tabla “CARRERAS” debemos ejecutar la siguiente

consulta:

SELECT *

FROM CARRERAS

En donde el ‘*’ significa que queremos obtener todas las columnas, en este caso ID_CARRERA,

NOMBRE, ID_CAMPUS. El resultado muestra lo siguiente:

Ahora si queremos saber cuántas carreras (registros) se encuentran en la tabla CARRERAS,

debemos usar la función COUNT de SQL, la cual se aplica sobre una sola columna (también se

puede usar como argumento el *). Los siguientes ejemplos entregan el mismo resultado: Claudio

Angulo S.

Los resultados son:

SELECT COUNT(*)

FROM CARRERAS

SELECT COUNT(ID_CARRERA)

FROM CARRERAS

Page 4: Guía Lab N°5

Ahora si deseamos obtener registros que cumplan cierta condición, usamos la cláusula

WHERE. Esta cláusula nos permite definir una o más de una condición, como se muestra a

continuación, en donde se desean obtener las carreras que tienen como código de carrera

(ID_CARRERA) distinto a 3:

SELECT *

FROM CARRERAS

WHERE ID_CARRERA <> 3

El resultado mostrado es:

Donde vemos que la carrera con código 3 no se muestra (Informática).

Como podemos ver, comparar números en SQL es muy fácil y directo, pero para comparar textos

la sintaxis cambia un poco. En el siguiente ejemplo se muestran todas las carreras, menos

informática, solo que esta vez se usa el NOMBRE de la tabla CARRERAS para comparar en vez del

ID_CARRERA como en el ejemplo anterior, para ello se deben usar comillas simples como se

muestra a continuación:

SELECT *

FROM CARRERAS

WHERE NOMBRE = 'Informatica'

El resultado entregado es:

Page 5: Guía Lab N°5

También en SQL se puede obtener la fecha actual del sistema (la fecha que tiene el

computador), de la siguiente forma: Claudio Angulo S.

SELECT SYSDATE

FROM DUAL

El resultado es:

“No se nos genero la tabla”

Se puede obtener además la fecha del sistema con distintos formatos, como en los siguientes

ejemplos:

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL

“No se nos genero la tabla”

SELECT TO_CHAR(SYSDATE,'DD') as DIA FROM DUAL

“No se nos genero la tabla”

SELECT TO_CHAR(SYSDATE,'MONTH') as MES FROM DUAL

“No se nos genero la tabla”

SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') as MES FROM DUAL

“No se nos genero la tabla”

Page 6: Guía Lab N°5

Revisaremos distintas tipos de consultas sobre éste modelo de datos.

i. Lista de Estudiantes (Nombre-Apellido-Edad-Fono-Dirección)

select e.nombres,

e.apellidos,

e.edad,

e.fono,

e.direccion

from ESTUDIANTES e

El resultado es:

ii. La misma lista de estudiantes, pero ordenada de mayor a menor por la edad.

Select e.nombres,

e.apellidos,

e.edad,

e.fono,

e.direccion

from ESTUDIANTES e

order by e.edad DESC

Page 7: Guía Lab N°5

El resultado es:

iii. A la lista de estudiantes agregamos la información del nombre de la carrera a la cual pertenece

cada estudiante.

select e.nombres,

e.apellidos,

e.edad,

e.fono,

e.direccion,

c.nombre

from ESTUDIANTES e, CARRERAS c

where c.id_carrera = e.id_carrera

order by e.edad DESC

El resultado es:

Page 8: Guía Lab N°5

iv. El número de carreras que se encuentran registradas en la base de datos.

select count(*) as "Numero de Carreras"

from carreras

El resultado es:

v. A la lista de estudiantes, agregamos la información del campus asociado a la carrera a la cual

pertenece cada estudiante.

select e.nombres,

e.apellidos,

e.edad,

e.fono,

e.direccion,

c.nombre AS "Nombre Carrera",

cs.nombre AS CAMPUS

from ESTUDIANTES e, CARRERAS c, campus cs

where c.id_carrera = e.id_carrera

AND cs.id_campus = c.id_campus

order by e.edad DESC

El resultado es:

Page 9: Guía Lab N°5

vi. A nuestra lista de estudiantes, agregaremos el nombre de la ciudad asociada al campus.

select e.nombres,

e.apellidos,

e.edad,

e.fono,

e.direccion,

c.nombre AS "Nombre Carrera",

cs.nombre AS CAMPUS,

ci.nombre as "Nombre Ciudad"

from ESTUDIANTES e, CARRERAS c, campus cs, ciudad ci

where c.id_carrera = e.id_carrera

AND cs.id_campus = c.id_campus

AND cs.id_ciudad = ci.id_ciudad

order by e.edad DESC

El resultado es:

vii. Obtenemos la lista de funcionarios (nombre-apellido-rut-edad-dirección-salud) que tengan una

edad superior a los 35 años.

select f.nombres,

f.apellidos,

f.rut_func,

f.edad,

Page 10: Guía Lab N°5

f.direccion,

f.salud

from funcionarios f

where f.edad > 35

El resultado es:

(Probar cambiando el operador de comparación por: <> )

El resultado es:

viii. Obtener la lista de préstamos en que su fecha de devolución sea mayor a la fecha actual:

select *

from prestamo p

where p.fecha_e > to_char(sysdate, 'dd/mm/yyyy

“No se generó resultado”

Page 11: Guía Lab N°5

Consultas creadas por el grupo:

A.- group by

A.1) SELECT e.id_carrera, count(e.rut_est) as "Numero de estudiantes"

FROM estudiante AS e

GROUP BY e.id_carrera;

El resultado es:

A.2) SELECT f.salud, count(f.rut_fun) AS ["numero de funcionarios"]

FROM funcionarios AS f

GROUP BY f.salud;

El resultado es:

A.3) SELECT c.id_campus, count(c.id_carrera) AS ["numero de carreras"]

FROM carreras AS c

GROUP BY c.id_campus;

El resultado es:

Page 12: Guía Lab N°5

B.- order by

B.1) SELECT cod_libro, titulo, agno as año

FROM libros

ORDER BY agno DESC;

El resultado es:

B.2) SELECT e.rut_est, e.nombres, e.apellidos, e.edad, c.nombre as "Nombre Carrera", cs.nombre

as Campus, l.titulo as "nombre libro",l.agno as Año

FROM estudiante AS e, carreras AS c, campus AS cs, libros AS l, prestamo AS p

WHERE p.cod_libro = l.cod_libro

and e.rut_est = p.rut_est

and c.id_carrera = e.id_carrera

and cs.id_campus = c.id_campus

order by AGNO DESC

El resultado es:

B.3) SELECT F.NOMBRES, F.APELLIDOS, F.RUT_FUN, F.EDAD, F.DIRECCION, F.SALUD

FROM FUNCIONARIOS AS F

WHERE (((F.EDAD)<>35))

order by f.edad desc;

Page 13: Guía Lab N°5

El resultado es:

C.- having

C.1) SELECT l.id_biblio, count(l.cod_libro) as "numero de libros"

FROM libros AS l

GROUP BY l.id_biblio

HAVING count(l.cod_libro) <> 3;

El resultado es:

C.2) SELECT l.id_biblio, count(l.cod_libro) as "numero de libros"

FROM libros AS l

GROUP BY l.id_biblio

HAVING count(l.cod_libro) >=2;

El resultado es:

Page 14: Guía Lab N°5

C.3) SELECT c.id_campus, count(c.id_carrera) AS ["numero de carreras"]

FROM carreras AS c

GROUP BY c.id_campus

having count(c.id_carrera) =1;

El resultado es:

D. ordenando varias tablas

D.1) SELECT e.rut_est, e.nombres, e.apellidos, c.nombre, cs.nombre, l.titulo

FROM estudiante AS e, carreras AS c, campus AS cs, libros AS l, prestamo AS p

WHERE l.cod_libro = p.cod_libro

and e.rut_est = p.rut_est

and c.id_carrera = e.id_carrera

and cs.id_campus =c.id_campus;

El resultado es:

D.2) SELECT e.rut_est, e.nombres, e.apellidos, f.nombres, f.apellidos, c.nombre, cs.nombre, l.titulo

FROM estudiante AS e, carreras AS c, campus AS cs, libros AS l, prestamo AS p, funcionarios as f

WHERE l.cod_libro = p.cod_libro

and e.rut_est = p.rut_est

and c.id_carrera = e.id_carrera

and cs.id_campus =c.id_campus

and f.rut_fun = p.rut_fun;

Page 15: Guía Lab N°5

El resultado es:

D.3) SELECT a.nombres, a.apellidos, ed.nombre, b.biblioteca, l.titulo, t.tipo_p

FROM autores as a, editoriales as ed, biblioteca as b, libros as l, tipo as t

WHERE a.rut_autor = l.rut_autor

and ed.id_edit = l.id_edit

and b.id_biblio = l.id_biblio

and t.id_tipo = l.id_tipo;

El resultado es: