Posibles Preguntas de Examen con Soluciones en Oracle SQL (Sin JOIN)

A continuación, se presentan posibles preguntas que pueden caer en un examen de Oracle SQL, acompañadas de soluciones detalladas que no utilizan la cláusula JOIN. Estas preguntas están diseñadas para cubrir consultas básicas, subconsultas, valores nulos, funciones agregadas y manejo de datos.


Tabla de contenidos

1. Consultas Básicas

Pregunta 1: Mostrar el apellido y salario de los empleados que ganan más de 2000.

Solución:

SELECT apellido, salario
FROM emple
WHERE salario > 2000;

Pregunta 2: Recuperar los nombres y localidades de los departamentos que no están en «MADRID».

Solución:

SELECT dnombre, loc
FROM depart
WHERE loc <> 'MADRID';

2. Subconsultas Simples

Pregunta 3: Mostrar los empleados que trabajan en el departamento «VENTAS».

Solución:

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

Pregunta 4: Obtener los temas de la tabla LIBRERIA con más ejemplares que el tema «BIOLOGIA».

Solución:

SELECT tema
FROM libreria
WHERE ejemplares > (SELECT ejemplares 
                    FROM libreria 
                    WHERE tema = 'BIOLOGIA');

3. Funciones Agregadas y Agrupamiento

Pregunta 5: Calcular el salario promedio de los empleados en el departamento 30.

Solución:

SELECT AVG(salario) AS salario_promedio
FROM emple
WHERE dept_no = 30;

Pregunta 6: Contar cuántos empleados hay en cada departamento.

Solución:

SELECT dept_no, COUNT(*) AS num_empleados
FROM emple
GROUP BY dept_no;

4. Subconsultas Correlacionadas

Pregunta 7: Seleccionar empleados cuyo salario sea superior al salario promedio de su departamento.

Solución:

SELECT apellido, salario
FROM emple e
WHERE salario > (SELECT AVG(salario) 
                 FROM emple 
                 WHERE dept_no = e.dept_no);

Pregunta 8: Mostrar los temas de LIBRERIA que tienen más ejemplares que cualquier tema en el estante «B».

Solución:

SELECT tema
FROM libreria
WHERE ejemplares > ALL (SELECT ejemplares 
                        FROM libreria 
                        WHERE estante = 'B');

5. Condicionales y Transformación de Datos

Pregunta 9: Mostrar los apellidos de empleados y una columna indicando «ALTO» si su salario es mayor a 2000, o «BAJO» si no lo es.

Solución:

SELECT apellido,
       CASE 
           WHEN salario > 2000 THEN 'ALTO'
           ELSE 'BAJO'
       END AS nivel_salario
FROM emple;

Pregunta 10: Recuperar los temas de LIBRERIA y reemplazar «MEDICINA» por «SALUD» en los resultados.

Solución:

SELECT CASE 
           WHEN tema = 'MEDICINA' THEN 'SALUD'
           ELSE tema
       END AS tema_modificado
FROM libreria;

6. Manipulación de Fechas

Pregunta 11: Mostrar los apellidos de los empleados y los años que han pasado desde su contratación.

Solución:

SELECT apellido, 
       ROUND((SYSDATE - fecha_alt) / 365, 1) AS anios_trabajados
FROM emple;

Pregunta 12: Recuperar los nombres de los alumnos nacidos antes del 1 de enero de 1990.

Solución:

SELECT nombre
FROM alum0405
WHERE fecha_nac < TO_DATE('01/01/1990', 'DD/MM/YYYY');

7. Relaciones entre Tablas

Pregunta 13: Mostrar los nombres y apellidos de los alumnos que tienen una nota mayor a 7 en «FOL».

Solución:

SELECT apenom
FROM alumnos
WHERE dni IN (SELECT dni 
              FROM notas 
              WHERE cod = (SELECT cod 
                           FROM asignaturas 
                           WHERE nombre = 'FOL')
              AND nota > 7);

Pregunta 14: Recuperar las asignaturas que no tienen alumnos matriculados.

Solución:

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

8. Uso de Valores Nulos

Pregunta 15: Mostrar los empleados que no tienen comisiones asignadas.

Solución:

SELECT apellido, salario
FROM emple
WHERE comision IS NULL;

Pregunta 16: Recuperar los temas de LIBRERIA y reemplazar los valores nulos en «EJEMPLARES» con 0.

Solución:

SELECT tema, NVL(ejemplares, 0) AS ejemplares_modificados
FROM libreria;

9. Ordenación y Límite de Resultados

Pregunta 17: Mostrar los temas de LIBRERIA ordenados por número de ejemplares en orden descendente.

Solución:

SELECT tema, ejemplares
FROM libreria
ORDER BY ejemplares DESC;

Pregunta 18: Recuperar los 3 empleados con los salarios más altos.

Solución:

SELECT *
FROM (SELECT apellido, salario 
      FROM emple
      ORDER BY salario DESC)
WHERE ROWNUM <= 3;

10. Escenarios Combinados

Pregunta 19: Mostrar los apellidos y salarios de los empleados cuyo salario supere al promedio de su departamento y tengan comisiones asignadas.

Solución:

SELECT apellido, salario
FROM emple
WHERE salario > (SELECT AVG(salario) 
                 FROM emple 
                 WHERE dept_no = emple.dept_no)
AND comision IS NOT NULL;

Pregunta 20: Contar cuántos alumnos de «Madrid» tienen asignaturas suspendidas y cuántos no.

Solución:

SELECT COUNT(*) AS alumnos_suspendidos
FROM alumnos
WHERE pobla = 'Madrid'
AND dni IN (SELECT dni 
            FROM notas 
            WHERE nota < 5);

SELECT COUNT(*) AS alumnos_no_suspendidos
FROM alumnos
WHERE pobla = 'Madrid'
AND dni NOT IN (SELECT dni 
                FROM notas 
                WHERE nota < 5);

Conclusión

Estas preguntas abarcan aspectos clave de Oracle SQL y se resuelven sin usar JOIN, empleando subconsultas y funciones avanzadas. Practicar estas preguntas te ayudará a consolidar tus conocimientos y estar preparado para cualquier examen de SQL.

close up photo of matrix background
Photo by Markus Spiske 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