trabajo sistemas
TRANSCRIPT
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
Desarrollo consultas laboratorio 5
Relaciones
Tablas correspondientes a la información utilizada para la base de datos:
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:
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;
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;
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;
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;
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
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.
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
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:
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: