logo
MyWebStudies - Página de inicio
INGRESAR

REGISTRARSE
Buscador

      3.6.1. Ejemplos - Operadores Exists y Not Exists

Selecciona el idioma :

Por favor, inicia sesión para que tu progreso sea registrado. Sin iniciar sesión, podrás visualizar el video pero no se aumentará tu avance en el curso

      3.6.1. Ejemplos - Operadores Exists y Not Exists


Ejemplo operador EXISTS: La consulta mostrará los nombres de todos los profesores, ya que se cumple la consulta interna donde al menos un profesor da clase a una asignatura del segundo año:

  • SELECT NOMBRE FROM PROFESORES WHERE EXISTS ( SELECT * FROM ASIGNATURAS WHERE ANNO = 2).

Ejemplo operador EXISTS con subconsulta correlacional: La consulta mostrará los nombres de los profesores que dan clase a segundo año. Ya que al usar el operador exists en una consulta correlacional, el operador exists actúa como el operador in. Hay que fijarse que en la subconsulta las ids de los profesores de las dos tablas se han relacionado, para crear una consulta correlacional:

  • SELECT NOMBRE FROM PROFESORES P WHERE EXISTS ( SELECT * FROM ASIGNATURAS A WHERE ANNO = 2 AND P.ID_PROFESOR = A.ID_PROFESOR).

La consulta usando el operador IN, obtendria el mismo resultado, ya que el operador exists en consultas correlaciónales actúa como el operador IN:

  • SELECT NOMBRE FROM PROFESORES WHERE ID-PROFESOR IN ( SELECT ID-PROFESOR FROM ASIGNATURAS WHERE AÑO = 2).

Ejemplos operador NOT EXISTS: La consulta, no mostrará ningún resultado, ya que la consulta interna devuelve al menos una fila, pues si existen asignaturas de segundo año, por lo tanto, la condición not exists devuelve false:

  • SELECT NOMBRE FROM PROFESORES WHERE NOT EXISTS ( SELECT * FROM ASIGNATURAS WHERE ANNO = 2).

Si ejecutamos la siguiente consulta se mostrarán los nombres de todos los profesores pues se cumple la subconsulta al no existir asignaturas del 4º año:

  • SELECT NOMBRE FROM PROFESORES WHERE NOT EXISTS ( SELECT * FROM ASIGNATURAS WHERE ANNO = 4).


ejemplos operadores exists not exists

Publicaciones Recientes de oracle sql

¿Hay algún error o mejora?

¿Dónde está el error?

¿Cúal es el error?