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.

  1. 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%';
  2. 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';
  3. 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;
  4. 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;
  5. 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');
  6. 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);
  7. 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;
  8. 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;
  9. 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);
  10. 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;

Entradas relacionadas: