Ejercicios Prácticos de Consultas SQL Resueltos
Clasificado en Magisterio
Escrito el en español con un tamaño de 3,84 KB
A continuación, se presentan una serie de ejercicios de consultas SQL resueltos, diseñados para mejorar tu comprensión y habilidad en el manejo de bases de datos.
DNI y Nombres de Profesores cuyo Nombre Empieza por 'A'
Consulta SQL para obtener los DNI y nombres de los profesores cuyo nombre comienza con la letra 'A'.
SELECT dniPro, nombre FROM profesores WHERE nombre LIKE 'A%';
Número de Alumnos Matriculados en el Curso Académico '12-13'
Consulta SQL para contar el número de alumnos distintos matriculados en el curso académico '12-13'.
SELECT COUNT(DISTINCT dniAlu) FROM notas WHERE cursoAcademico = '12-13';
Creación de la Vista 'alumnosActuales'
Creación de una vista llamada 'alumnosActuales' que contiene información de los alumnos del curso académico '13-14', incluyendo DNI, nombre del alumno, nombre de la asignatura y la nota.
CREATE VIEW alumnosActuales AS SELECT alu.dniAlu, alu.nombre AS nombreAlu, asi.nombre AS nombreAsi, nota FROM ((SELECT dniAlu, idAsi, nota FROM notas WHERE cursoAcademico = '13-14') n INNER JOIN alumnos alu ON n.dniAlu = alu.dniAlu) INNER JOIN asignaturas asi ON n.idAsi = asi.idAsi;
Inserción en la Tabla 'profeAsig'
Consulta SQL para insertar en la tabla 'profeAsig' el DNI del profesor y el ID de la asignatura impartida por el profesor en cualquier curso académico.
SELECT dniPro, idAsi INTO profeAsig FROM notas;
Borrado de Filas en 'profeAsig'
Consulta SQL para borrar de la tabla 'profeAsig' las filas correspondientes a los profesores que no imparten ninguna asignatura en el curso '13-14'.
DELETE FROM profeAsig WHERE dniPro NOT IN (SELECT DISTINCT dniPro FROM notas WHERE cursoAcademico = '13-14');
Incremento de Sueldo a Profesores
Consulta SQL para incrementar en un 10% el sueldo de los 2 profesores que más alumnos hayan aprobado.
UPDATE profesores SET sueldo = sueldo * 1.10 WHERE dniPro IN (SELECT TOP 2 WITH TIES dniPro FROM notas WHERE nota >= 5 GROUP BY dniPro ORDER BY COUNT(nota) DESC);
ID, Nombres de Asignaturas y Número de Profesores
Consulta SQL para obtener los ID de asignatura, los nombres de las asignaturas y el número de profesores que imparten cada una de ellas en el curso '13-14'.
SELECT asi.idAsi, nombre, COUNT(dniPro) FROM asignaturas asi INNER JOIN (SELECT idAsi, dniPro FROM notas WHERE cursoAcademico = '13-14') n13 ON asi.idAsi = n13.idAsi GROUP BY asi.idAsi, nombre;
DNI de Alumnos Matriculados en Más de 2 Asignaturas
Consulta SQL para obtener los DNI de los alumnos que están matriculados en más de 2 asignaturas en el curso '13-14'.
SELECT dniAlu, COUNT(idAsi) FROM notas WHERE cursoAcademico = '13-14' GROUP BY dniAlu HAVING COUNT(idAsi) > 2;
DNI de Profesores que Han Impartido Todas las Asignaturas
Consulta SQL para obtener los DNI de los profesores que han impartido todas las asignaturas.
SELECT dniPro FROM profesores WHERE NOT EXISTS (SELECT idAsi FROM asignaturas EXCEPT SELECT idAsi FROM notas WHERE profesores.dniPro = notas.dnipro);
Información de Alumnos y Promedio de Notas por Curso
Consulta SQL para obtener el DNI del alumno, el nombre del alumno, los cursos académicos y la media de las notas del alumno para cada uno de los cursos académicos, ordenados alfabéticamente por el nombre del alumno y por curso académico.
SELECT alu.dniAlu, alu.nombre, cursoAcademico, AVG(nota) FROM alumnos alu INNER JOIN notas ON alu.dniAlu = notas.dniAlu GROUP BY alu.dniAlu, alu.nombre, cursoAcademico ORDER BY alu.nombre, cursoAcademico;