trabajo sistemas

14
Universidad Austral de Chile Instituto de Administración Ingeniería Comercial ADMI – 273 SISTEMAS DE INFORMACIÓN EMPRESARIAL BASE DE DATOS Y CONSULTAR SQL

Upload: fernando-javier-lingay

Post on 06-Aug-2015

166 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabajo sistemas

Universidad Austral de ChileInstituto de AdministraciónIngeniería ComercialADMI – 273

SISTEMAS DE INFORMACIÓN EMPRESARIAL

BASE DE DATOS Y CONSULTAR SQL

Profesor: Cristian Salazar C.

Integrantes: Fernando Gómez L.

Vanessa Gutiérrez K.

Felipe Muñoz M.

Valdivia, Abril de 2012

Page 2: Trabajo sistemas

Desarrollo consultas laboratorio 5

Relaciones

Tablas correspondientes a la información utilizada para la base de datos:

Page 3: Trabajo sistemas
Page 4: Trabajo sistemas

Desarrollo consultas laboratorio

Consulta n°1: Todos los registros en la tabla “carreras”

SQL:

Consulta n°2 : Cuantas carreras se encuentran en la tabla “carreras”

SQL:

Resultado:

Page 5: Trabajo sistemas

Consulta n°3: Utilización de la claúsula “Where”. Se desean obtener las carreras que tienen como código de carrera (ID_CARRERA) distinto a 3:

SQL:

Ejercicios de desarrollo correspondiente a la guía laboratorio 5

1. Lista de estudiantesSQL: SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est,

e.id_carreraFROM ESTUDIANTES AS e;

Page 6: Trabajo sistemas

2. La misma lista de estudiantes, pero ordenada de mayor a menor por la edad.SQL: SELECT e.nombre_est, e.apellido_est,e.edad_est, e.fono_est, e.direccion_est,

e.id_carreraFROM ESTUDIANTES AS eORDER BY e.edad_est DESC;

3. A la lista de estudiantes agregamos la información del nombre de la carrera a la cual pertenece cada estudiante.SQL: SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est,

e.id_carrera, c.nombre_carreraFROM ESTUDIANTES AS e, CARRERAS AS cWHERE c.id_carrera = e.id_carreraORDER BY edad_est;

Page 7: Trabajo sistemas

4. El número de carreras que se encuentran registradas en la base de datos.SQL: SELECT count(*) AS ["Numero de Carreras"]

FROM carreras;

5. A la lista de estudiantes, agregamos la información carrera a la cual pertenece cada estudiante.SQL: SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est, e.id_carrera, c.nombre_carrera AS ["Nombre Carrera"], cs.nombre_campus AS CAMPUSFROM ESTUDIANTES AS e, CARRERAS AS c, campus AS csWHERE c.id_carrera=e.id_carrera And cs.id_campus=c.id_campusORDER BY e.edad_est DESC;

Page 8: Trabajo sistemas

6. A nuestra lista de estudiantes, agregaremos el nombre de la ciudad asociada al campus.SQL: SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est, e.id_carrera, c.nombre_carrera AS ["Nombre Carrera"], cs.nombre_campus AS CAMPUS, ci.nombre_ciudad AS ["Nombre Ciudad"]FROM ESTUDIANTES AS e, CARRERAS AS c, campus AS cs, ciudad AS ciWHERE c.id_carrera=e.id_carrera And cs.id_campus=c.id_campus And cs.id_ciudad=ci.id_ciudadORDER BY e.edad_est DESC;

7. Obtenemos la lista de funcionarios (nombre-apellido-rut-edad-dirección-salud) que tengan una edad superior a los 35 años.SQL: SELECT f.rut_func, f.nombre_func, f.apellido_func, f.edad_func, f.direccion_func, f.salud, f.id_campusFROM funcionarios AS fWHERE f.edad_func>35;

Page 9: Trabajo sistemas

Ejemplos de Group by aplicados a la base de datos:

1) Cantidad de libros por año de publicación.

SELECT agno, count(agno) AS ["Cantidad de libros por año"]FROM librosGROUP BY agno;

2) Cantidad de alumnospor Carrera

SELECT c.nombre_carrera, count (e.id_carrera) AS ["Cantidad de alumnos"]FROM carreras AS c, estudiantes AS eWHERE c.id_carrera = e.id_carreraGROUP BY c.nombre_carrera, e.id_carrera;

3) Cantidad de carreras por campus

Page 10: Trabajo sistemas

SELECT cs.nombre_campus, count (c.id_campus) AS ["Cantidad de carreras"]FROM campus AS cs, carreras AS cWHERE cs.id_campus= c.id_campusGROUP BY cs.nombre_campus;

Ejemplos de Having aplicados a la base de datos:

1) Agrupar los libros por año, y mostrar los años que superan las dos publicaciones.

SELECT agno, count(agno) AS ["Cantidad de libros por año"]FROM librosGROUP BY agnoHAVING count(agno)>2;

2) Agrupar funcionario por campus, y mostrarlos que tengan más de un funcionario por campus.

Page 11: Trabajo sistemas

SELECT c.nombre_campus, count(f.id_campus) AS ["Cantidad de funcionarios por campus"]FROM campus AS c, funcionarios AS fWHERE c.id_campus = f.id_campusGROUP BY c.nombre_campus, f.id_campusHAVING count(f.id_campus) > 1;

3) Agrupar los alumnos por carrera, y mostrar las carreras que tengan dos o mas alumnos.

SELECT c.nombre_carrera, count(e.id_carrera) AS ["Cantidad de alumnos"]FROM carreras AS c, estudiantes AS eWHERE c.id_carrera = e.id_carreraGROUP BY c.nombre_carreraHAVING count(e.id_carrera) >= 2;

Ejemplos de Order by aplicados a la base de datos:

1) Ordenar los funcionarios por apellido

SQL: SELECT apellido_func, nombre_func, edad_func, salud

Page 12: Trabajo sistemas

FROM funcionariosORDER BY apellido_func;

2) Lista de títulos de los libros, ordenada por años de mayor a menor y la biblioteca al cual pertenece cada libro.

SQL: SELECT l.agno, l.titulo, b.biblioteca FROM libros AS l, biblioteca AS b WHERE l.id_biblio=b.id_biblio ORDER BY agno;

Resultado:

Page 13: Trabajo sistemas

3) Los prestamos realizados, se encuentran ordenados según la fecha de préstamo en orden descendiente.

SQL: SELECT p.fecha_p, l.agno, l.tituloFROM prestamo AS p, libros AS lWHERE l.cod_libro = p.cod_libroORDER BY p.fecha_p DESC;

Resultado: