Examen Práctico: Consultas SQL Basadas en Tablas EMPLE, DEPART, LIBRERIA, ALUMNOS, ASIGNATURAS y NOTAS

A continuación, se presenta un posible examen práctico basado en el script de creación e inserción de tablas, orientado a evaluar tus habilidades para realizar consultas SQL en Oracle. Este examen incluye ejercicios representativos que podrían aparecer en una evaluación. Cada ejercicio se acompaña de ejemplos relacionados para practicar.


Tabla de contenidos

Sección 1: Tablas EMPLE y DEPART

1. Seleccionar apellido, oficio y localidad de los empleados cuyo oficio sea «ANALISTA».

Escribe una consulta que recupere los apellidos, los oficios y la localidad de los departamentos de aquellos empleados que tienen como oficio «ANALISTA».

Ejemplo:

SELECT apellido, oficio, 
       (SELECT loc 
        FROM depart 
        WHERE depart.dept_no = emple.dept_no) AS localidad
FROM emple
WHERE oficio = 'ANALISTA';

2. Obtener los datos de los empleados cuyo director sea «CEREZO».

Diseña una consulta que muestre toda la información de los empleados donde el director sea «CEREZO».

Ejemplo:

SELECT *
FROM emple
WHERE dir = (SELECT emp_no 
             FROM emple 
             WHERE apellido = 'CEREZO');

3. Obtener los datos de los empleados del departamento «VENTAS».

Elabora una consulta que recupere los datos de los empleados que trabajan en el departamento denominado «VENTAS».

Ejemplo:

SELECT *
FROM emple
WHERE dept_no = (SELECT dept_no 
                 FROM depart 
                 WHERE dnombre = 'VENTAS');

4. Obtener los datos de los departamentos que NO tengan empleados.

Diseña una consulta que identifique los departamentos que no tienen ningún empleado asignado.

Ejemplo:

SELECT *
FROM depart
WHERE dept_no NOT IN (SELECT DISTINCT dept_no 
                      FROM emple);

5. Obtener los datos de los departamentos que tengan empleados.

Escribe una consulta que muestre los departamentos donde existe al menos un empleado asignado.

Ejemplo:

SELECT *
FROM depart
WHERE dept_no IN (SELECT DISTINCT dept_no 
                  FROM emple);

6. Obtener el apellido y salario de los empleados que superen todos los salarios del departamento 20.

Escribe una consulta que muestre los apellidos y salarios de los empleados cuyo salario sea mayor que el de cualquier empleado del departamento 20.

Ejemplo:

SELECT apellido, salario
FROM emple
WHERE salario > ALL (SELECT salario 
                     FROM emple 
                     WHERE dept_no = 20);

Sección 2: Tabla LIBRERIA

7. Visualizar temas, estante y ejemplares con ejemplares entre 8 y 15.

Escribe una consulta que recupere los temas, los estantes y el número de ejemplares de los libros donde el número de ejemplares esté entre 8 y 15.

Ejemplo:

SELECT tema, estante, ejemplares
FROM libreria
WHERE ejemplares BETWEEN 8 AND 15;

8. Visualizar las filas cuyo estante no esté entre «B» y «D».

Escribe una consulta que recupere los temas, estantes y ejemplares donde el estante no esté en el rango «B» a «D».

Ejemplo:

SELECT tema, estante, ejemplares
FROM libreria
WHERE estante NOT BETWEEN 'B' AND 'D';

9. Visualizar todos los temas cuyo número de ejemplares sea inferior al de «MEDICINA».

Elabora una consulta que identifique los temas con menos ejemplares que el tema «MEDICINA».

Ejemplo:

SELECT tema
FROM libreria
WHERE ejemplares < (SELECT ejemplares 
                    FROM libreria 
                    WHERE tema = 'MEDICINA');

10. Visualizar los temas cuyo número de ejemplares no esté entre 15 y 20.

Diseña una consulta que excluya los temas cuyo número de ejemplares esté en el rango de 15 a 20.

Ejemplo:

SELECT tema
FROM libreria
WHERE ejemplares NOT BETWEEN 15 AND 20;

Sección 3: Tablas ALUMNOS, ASIGNATURAS y NOTAS

11. Visualizar asignaturas con tres letras «o» en su nombre y alumnos de «Madrid».

Crea una consulta que recupere las asignaturas que contengan tres letras «o» y que tengan al menos un alumno matriculado de «Madrid».

Ejemplo:

SELECT nombre
FROM asignaturas
WHERE nombre LIKE '
AND cod IN (SELECT cod 
            FROM notas 
            WHERE dni IN (SELECT dni 
                          FROM alumnos 
                          WHERE pobla = 'Madrid'));

12. Visualizar los nombres de alumnos de «Madrid» con asignaturas suspendidas.

Diseña una consulta para identificar a los alumnos de «Madrid» que tienen asignaturas con una nota menor a 5.

Ejemplo:

SELECT apenom
FROM alumnos
WHERE pobla = 'Madrid'
AND dni IN (SELECT dni 
            FROM notas 
            WHERE nota < 5);

13. Mostrar los alumnos que tengan la misma nota que «Díaz Fernández, María» en «FOL».

Elabora una consulta que recupere los nombres de los alumnos que compartan la misma nota que «Díaz Fernández, María» en la asignatura «FOL».

Ejemplo:

SELECT apenom
FROM alumnos
WHERE dni IN (SELECT dni 
              FROM notas 
              WHERE nota = (SELECT nota 
                            FROM notas 
                            WHERE dni = (SELECT dni 
                                         FROM alumnos 
                                         WHERE apenom = 'Díaz Fernández, María')
                            AND cod = (SELECT cod 
                                       FROM asignaturas 
                                       WHERE nombre = 'FOL')));

14. Obtener los datos de las asignaturas que no tengan alumnos.

Escribe una consulta para identificar las asignaturas en las que no hay alumnos matriculados.

Ejemplo:

SELECT *
FROM asignaturas
WHERE cod NOT IN (SELECT cod 
                  FROM notas);

15. Obtener el nombre y apellido de los alumnos con nota en la asignatura con código 1.

Crea una consulta que recupere los nombres y apellidos de los alumnos que tienen nota en la asignatura con código 1.

Ejemplo:

SELECT apenom
FROM alumnos
WHERE dni IN (SELECT dni 
              FROM notas 
              WHERE cod = 1);

16. Obtener el nombre y apellido de los alumnos sin nota en la asignatura con código 1.

Diseña una consulta que recupere los nombres y apellidos de los alumnos que no tienen nota en la asignatura con código 1.

Ejemplo:

SELECT apenom
FROM alumnos
WHERE dni NOT IN (SELECT dni 
                  FROM notas 
                  WHERE cod = 1);

Conclusión

Este examen cubre una amplia gama de consultas SQL que te permiten practicar subconsultas, filtros y operaciones condicionales en Oracle SQL. Asegúrate de comprender el propósito de cada ejercicio y prueba las consultas en tu entorno para garantizar su correcto funcionamiento.

data codes through eyeglasses
Photo by Kevin Ku on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad