Guía Lab N°5

Page 1

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


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


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


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:


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”


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


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:


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:


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,


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”


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:


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;


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:


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;


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:


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.