1. Universidad Austral de Chile
Instituto de Administración
Ingeniería Comercial
ADMI – 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
4. 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:
5. 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 estudiantes
SQL: SELECT e.nombre_est, e.apellido_est, e.edad_est, e.fono_est, e.direccion_est,
e.id_carrera
FROM ESTUDIANTES AS e;
6. 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_carrera
FROM ESTUDIANTES AS e
ORDER 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_carrera
FROM ESTUDIANTES AS e, CARRERAS AS c
WHERE c.id_carrera = e.id_carrera
ORDER BY edad_est;
7. 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
CAMPUS
FROM ESTUDIANTES AS e, CARRERAS AS c, campus AS cs
WHERE c.id_carrera=e.id_carreraAndcs.id_campus=c.id_campus
ORDER 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 ci
WHERE c.id_carrera=e.id_carreraAndcs.id_campus=c.id_campus And
cs.id_ciudad=ci.id_ciudad
ORDER BY e.edad_est DESC;
8. 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_campus
FROM funcionarios AS f
WHERE f.edad_func>35;
Ejemplos de Groupby 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 libros
GROUP BY agno;
9. 2) Cantidad de alumnospor Carrera
SELECT c.nombre_carrera, count (e.id_carrera) AS ["Cantidad de alumnos"]
FROM carreras AS c, estudiantes AS e
WHERE c.id_carrera = e.id_carrera
GROUP BY c.nombre_carrera, e.id_carrera;
3) Cantidad de carreraspor campus
SELECT cs.nombre_campus, count (c.id_campus) AS ["Cantidad de carreras"]
FROM campus AS cs, carreras AS c
WHERE cs.id_campus= c.id_campus
GROUP BY cs.nombre_campus;
10. 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 libros
GROUP BY agno
HAVING 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 f
WHERE c.id_campus = f.id_campus
GROUP BY c.nombre_campus, f.id_campus
HAVING count(f.id_campus) > 1;
11. 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 e
WHERE c.id_carrera = e.id_carrera
GROUP BY c.nombre_carrera
HAVING count(e.id_carrera) >= 2;
Ejemplos de Orderby aplicados a la base de datos:
1) Ordenar los funcionarios por apellido
SQL: SELECT apellido_func, nombre_func, edad_func, salud
FROM funcionarios
ORDER BY apellido_func;
12. 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.titulo
FROM prestamo AS p, libros AS l
WHERE l.cod_libro = p.cod_libro
ORDER BY p.fecha_p DESC;
Resultado: