SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
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:

Más contenido relacionado

La actualidad más candente

La actualidad más candente (11)

trabajo de empresa
trabajo de empresatrabajo de empresa
trabajo de empresa
 
Guia de aprendizaje EXCEL
Guia de aprendizaje EXCEL Guia de aprendizaje EXCEL
Guia de aprendizaje EXCEL
 
Consultas
ConsultasConsultas
Consultas
 
trabajo de informatica
trabajo de informatica trabajo de informatica
trabajo de informatica
 
trabajo
trabajotrabajo
trabajo
 
Plantilla con normas icontec modificada
Plantilla con normas icontec modificada Plantilla con normas icontec modificada
Plantilla con normas icontec modificada
 
Proyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases DatosProyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases Datos
 
ITESO
ITESOITESO
ITESO
 
Tarea nº 1 sistemas (1)
Tarea nº 1 sistemas (1)Tarea nº 1 sistemas (1)
Tarea nº 1 sistemas (1)
 
tutorial de informatica
tutorial de informatica tutorial de informatica
tutorial de informatica
 
Evaluacion 1
Evaluacion 1Evaluacion 1
Evaluacion 1
 

Destacado (9)

24373266
2437326624373266
24373266
 
PLSQL Ayudantia
PLSQL Ayudantia PLSQL Ayudantia
PLSQL Ayudantia
 
Oracle: PLSQL
Oracle: PLSQLOracle: PLSQL
Oracle: PLSQL
 
Trabajando con datos Compuestos
Trabajando con datos CompuestosTrabajando con datos Compuestos
Trabajando con datos Compuestos
 
Oracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step GuideOracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step Guide
 
Plsql commons
Plsql commons Plsql commons
Plsql commons
 
Plsql programs(encrypted)
Plsql programs(encrypted)Plsql programs(encrypted)
Plsql programs(encrypted)
 
Best sql plsql material
Best sql plsql materialBest sql plsql material
Best sql plsql material
 
Advanced PLSQL Optimizing for Better Performance
Advanced PLSQL Optimizing for Better PerformanceAdvanced PLSQL Optimizing for Better Performance
Advanced PLSQL Optimizing for Better Performance
 

Similar a Laboratorio

Similar a Laboratorio (20)

Trabajo sistemas
Trabajo sistemasTrabajo sistemas
Trabajo sistemas
 
Guia lab5
Guia lab5Guia lab5
Guia lab5
 
PLSQL
PLSQLPLSQL
PLSQL
 
Trabajo ayudantía
Trabajo ayudantíaTrabajo ayudantía
Trabajo ayudantía
 
Laboratorio n° 1
Laboratorio n° 1Laboratorio n° 1
Laboratorio n° 1
 
Laboratorio SIA - 2
Laboratorio SIA - 2Laboratorio SIA - 2
Laboratorio SIA - 2
 
Laboratorio sia 2 (1)
Laboratorio sia 2 (1)Laboratorio sia 2 (1)
Laboratorio sia 2 (1)
 
Laboratorio Nº5 SIA
Laboratorio Nº5 SIA Laboratorio Nº5 SIA
Laboratorio Nº5 SIA
 
Prueba Sistema Oracle
Prueba Sistema OraclePrueba Sistema Oracle
Prueba Sistema Oracle
 
Laboratorio 2
Laboratorio 2Laboratorio 2
Laboratorio 2
 
Laboratorio 2 - ayudantia
Laboratorio 2 - ayudantiaLaboratorio 2 - ayudantia
Laboratorio 2 - ayudantia
 
Lab 2
Lab 2Lab 2
Lab 2
 
Tarea ayudantia nº2
Tarea ayudantia nº2Tarea ayudantia nº2
Tarea ayudantia nº2
 
Tarea final sie 2012
Tarea final sie 2012Tarea final sie 2012
Tarea final sie 2012
 
Laboratorio n° 2
Laboratorio n° 2Laboratorio n° 2
Laboratorio n° 2
 
Laboratorio n2 de ayudantía sie
Laboratorio n2 de ayudantía  sieLaboratorio n2 de ayudantía  sie
Laboratorio n2 de ayudantía sie
 
Ayudantia 2 sia
Ayudantia 2 siaAyudantia 2 sia
Ayudantia 2 sia
 
Ayudantia 2 sia
Ayudantia 2 siaAyudantia 2 sia
Ayudantia 2 sia
 
Trabajo 2. ayudantía. elmar alarcón namuncura
Trabajo 2. ayudantía. elmar alarcón namuncuraTrabajo 2. ayudantía. elmar alarcón namuncura
Trabajo 2. ayudantía. elmar alarcón namuncura
 
Plsql
PlsqlPlsql
Plsql
 

Laboratorio

  • 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
  • 2. 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
  • 3. 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
  • 4. 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:
  • 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”
  • 6. 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
  • 7. 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:
  • 8. 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:
  • 9. 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,
  • 10. 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”
  • 11. 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:
  • 12. 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;
  • 13. 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:
  • 14. 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;
  • 15. 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: