TAREA Nº 1
Profesor: Cristian Salazar
Integrantes: Sandra Barrientos
Elmar Alarcón
Alejandro Ramírez
Universidad Austral de Chile Facultad de Ciencias Económicas y Administrativas
Escuela de Ingeniería Comercial Sistemas de información empresarial
VALDIVIA, ABRIL 2012
ACTIVIDADES PROVENIENTES DE LA GUÍA DE EJERCICIOS
1. Todas las carreras, con sus respectivos campus
Consulta SQL:
2. ¿Cuántas carreras hay?
Consulta SQL:
3. Cláusula WHERE: todas las carreras menos “Arquitectura” (1793)
Consulta SQL:
SELECT * FROM carreras WHERE id_carrera <> 1793;
SELECT COUNT (*) FROM carreras;
SELECT * FROM carreras;
4. Lista de estudiantes (Nombre, apellido, edad, fono, dirección)
Consulta SQL:
5. Lista de estudiantes ordenados por edad de manera descendente
Consulta SQL:
SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est FROM estudiantes AS e ORDER BY e.edad_est DESC;
SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est FROM estudiantes AS e;
6. Datos estudiantes junto a la carrera a la cual pertenece
Consulta SQL:
7. Lista de estudiantes con sus respectivas carreras y campus
Consulta SQL:
SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est, c.nombre_carrera AS ["Nombre Carrera"], cs.nombre_campus AS Campus FROM estudiantes AS e, carreras AS c, campus AS cs WHERE c.id_carrera = e.id_carrera AND cs.id_campus = c.id_campus ORDER BY e.edad_est DESC;
SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est, c.nombre_carrera FROM estudiantes AS e, carreras AS c WHERE c.id_carrera = e.id_carrera ORDER BY e.edad_est DESC;
8. Lista estudiantes, su respectiva carrera, campus y ciudad del campus
Consulta SQL:
9. Funcionarios mayores de 35 años.
Consulta SQL:
SELECT f.nombre_func, f.apellido_func, f.rut_func, f.edad_func, f.direccion, f.salud FROM funcionarios f WHERE f.edad_func > 35;
SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est, 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 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_est DESC;
10. Préstamos de libros, cuya fecha de entrega sea superior a la de hoy.
Consulta SQL
TAREA: GROUP BY, HAVING Y ORDER BY
Tres consultas usando GROUP BY
Group by 1
Consulta SQL: Cantidad de alumnos por carrera
Group by 2
Consulta SQL: Cantidad de carreras por campus.
SELECT * FROM préstamo AS p WHERE p.fecha_e > date ();
SELECT a.nombre_carrera, COUNT (b.id_carrera) FROM carreras AS a, estudiantes AS b WHERE a.id_carrera=b.id_carrera GROUP BY nombre_carrera;
SELECT e.nombre_campus, COUNT (a.id_carrera) FROM carreras AS a, campus AS e WHERE e.id_campus = a.id_campus GROUP BY e.nombre_campus;
Group by 3
Consulta SQL: Cantidad de libros por biblioteca.
Tres consultas usando ORDER BY
Order by 1
Consulta SQL: Lista de estudiantes mayores a 21 años, ordenados por edad de forma
descendente.
EL RESULTADO DE LA CONSULTA ES EL SIGUIENTE:
Se puede observar que la tabla anterior muestra sólo estudiantes mayores de 21 años ordenados
de mayor a menor.
SELECT b.biblioteca, COUNT (a.cod_libro) FROM libros AS a, biblioteca AS b WHERE a.id_biblio=b.id_biblio GROUP BY b.biblioteca;
Order by 2
Consulta SQL: Lista de funcionarios, con todos sus datos ordenados por edad, de menor a
mayor.
EL RESULTADO DE LA CONSULTA ES EL SIGUIENTE:
Como se puede ver, tenemos la misma tabla que al principio, pero esta vez, los funcionarios
ordenados de menor a mayor.
Order by 3
Consulta SQL: Lista de libros con todos sus datos, ordenados desde el más nuevo hasta el más
antiguo.
EL RESULTADO DE LA CONSULTA ES EL SIGUIENTE
Tres consultas usando HAVING.
Having 1
Consulta SQL: Cantidad de libros solicitados por tipo de préstamo.
Having 2
Consulta SQL: Cantidad funcionarios por campus.
Having 3
Consulta SQL: Cantidad de libros solicitados por biblioteca.
SELECT b.tipo_p, COUNT (a.id_tipo) FROM libros AS a, tipo AS b WHERE a.id_tipo=b.id_tipo GROUP BY b.tipo_p HAVING COUNT (a.id_tipo)>2;
SELECT b.nombre_campus, COUNT (a.rut_func) FROM funcionarios AS a, campus AS b WHERE a.id_campus=b.id_campus GROUP BY nombre_campus HAVING COUNT (a.rut_func)=1;
SELECT b.biblioteca, COUNT (a.cod_libro) FROM libros AS a, biblioteca AS b WHERE a.id_biblio=b.id_biblio GROUP BY b.biblioteca HAVING COUNT (a.cod_libro)>1;
Consulta considerando varias tablas
Consulta SQL: Cada libro, con su autor, editorial y biblioteca, ordenados
ascendentemente según su año de publicación.
Resultado:
SELECT a.titulo_libro, a.agno_libro, b.nombre_autor, b.apellido_autor, c.nombre_edit, d.biblioteca FROM libros AS a, autores AS b, editoriales AS c, biblioteca AS d WHERE "a.id_biblio=d.id_biblio' 'a.rut_autor=b.rut_autor' 'a.id_edit=b.id_edit" ORDER BY a.agno_libro ASC;