1. Universidad Austral de Chile
Facultad de Ciencias Económicas y Administrativas
Escuela de Ingeniería Comercial
Sistemas de información empresarial
TAREA Nº 1
Profesor: Cristian Salazar
Integrantes: Sandra Barrientos
Elmar Alarcón
Alejandro Ramírez
VALDIVIA, ABRIL 2012
2. TODAS LAS TABLAS UTILIZADAS
AUTORES BIBLIOTECA
CAMPUS CIUDAD
EDITORIALES TIPO
5. ACTIVIDADES PROVENIENTES DE LA GUÍA DE EJERCICIOS
1. Todas las carreras, con sus respectivos campus
Consulta SQL:
SELECT *
FROM carreras;
2. ¿Cuántas carreras hay?
Consulta SQL:
SELECT COUNT (*)
FROM carreras;
3. Cláusula WHERE: todas las carreras menos “Arquitectura” (1793)
Consulta SQL:
SELECT *
FROM carreras
WHERE id_carrera <> 1793;
6. 4. Lista de estudiantes (Nombre, apellido, edad, fono, dirección)
Consulta SQL:
SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est
FROM estudiantes AS e;
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;
7. 6. Datos estudiantes junto a la carrera a la cual pertenece
Consulta SQL:
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;
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;
8. 8. Lista estudiantes, su respectiva carrera, campus y ciudad del 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,
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;
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;
9. 10. Préstamos de libros, cuya fecha de entrega sea superior a la de hoy.
Consulta SQL
SELECT *
FROM préstamo AS p
WHERE p.fecha_e > date ();
TAREA: GROUP BY, HAVING Y ORDER BY
Tres consultas usando GROUP BY
Group by 1
Consulta SQL: Cantidad de alumnos por carrera
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;
Group by 2
Consulta SQL: Cantidad de carreras por campus.
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;
10. Group by 3
Consulta SQL: Cantidad de libros por biblioteca.
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;
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.
11. 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
12. Tres consultas usando HAVING.
Having 1
Consulta SQL: Cantidad de libros solicitados por tipo de préstamo.
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;
Having 2
Consulta SQL: Cantidad funcionarios por campus.
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 3COUNT (a.rut_func)=1;
HAVING
Consulta SQL: Cantidad de libros solicitados por biblioteca.
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;
13. Consulta considerando varias tablas
Consulta SQL: Cada libro, con su autor, editorial y biblioteca, ordenados
ascendentemente según su año de publicación.
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;
Resultado: