Saltar al contenido

EXISTS

SQL · Unidad 9: Subconsultas

Otra base, la empresa de nueve personas. Ya conoces empleados. Lo que no habías visto es que cada persona guarda en depto_id el número de su departamento, y que los departamentos viven en su propia tabla, cada uno con su presupuesto.

Carmen, la directora, no pertenece a ninguno, y su depto_id está vacío.

SELECT id, nombre, presupuesto
FROM departamentos;
SELECT nombre, salario, depto_id
FROM empleados;

Devuelve

idnombrepresupuesto
1Ventas50000
2Sistemas80000
3Marca30000
4Legal20000

Devuelve

nombresalariodepto_id
Carmen5200NULL
Marco38001
Paula41002
Rita19001
Nadia21001
Samuel30002
Lidia30002
Fabio26002
Greta24003

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Predice la salida

    La empresa va a dar un bono a los departamentos donde nadie gana 3000 o más. Primero, los que se quedan sin él. ¿En cuáles hay alguien que gane 3000 o más? En Ventas lo gana Marco. En Sistemas, Paula, Samuel y Lidia. Greta, la única de Marca, gana 2400. Carmen gana 5200 y no tiene departamento. ¿Qué devuelve esta consulta?

  2. 2. Ordena las líneas

    ¿Quién tiene gente a su cargo? Afuera va la copia j, y adentro, la copia e. Ordena la consulta. Sobran dos líneas.

  3. 3. Predice la salida

    La misma pregunta, en qué departamento no trabaja nadie, escrita con NOT IN. La lista de adentro tiene nueve valores, uno por empleado, y uno de ellos es el NULL de Carmen. ¿Qué devuelve?

  4. 4. Ordena las líneas

    ¿A qué departamentos les toca el bono, porque nadie gana 3000 o más? Ordena la consulta. Sobran dos líneas.

  5. 5. Predice la salida

    ¿Qué departamentos tienen una directora? En la empresa solo hay una, Carmen, y no pertenece a ningún departamento. A esta consulta también le falta la condición que la ata a cada uno. ¿Qué devuelve?

  6. 6. Encuentra el bug

    ¿En qué departamentos hay alguien que gane menos de 2500? Son Ventas, por Rita y Nadia, y Marca, por Greta. La consulta dice Sistemas y Ventas, y en Sistemas quien menos gana es Fabio, con 2600. ¿Qué línea tiene el problema?

  7. 7. Opción múltiple

    En la consulta de los departamentos donde trabaja alguien, una compañera cambia SELECT 1 por SELECT e.nombre, e.salario. ¿Qué cambia en el resultado?

  8. 8. Completa el código

    ¿Hay dos personas que ganen exactamente lo mismo? Para cada empleado, la subconsulta busca en la copia x a otra persona con su mismo salario. Completa la condición que impide que cada quien se encuentre a sí mismo.

  9. 9. Encuentra el caso que falla

    Recursos humanos busca a los gerentes cuyo equipo entero gana menos de 3000. Un gerente que no tiene a nadie a su cargo no tiene equipo, y no cuenta. Hoy sale Marco, que dirige a Rita y a Nadia. ¿Con cuál de estos cambios mete la consulta a alguien que no debería estar?

  10. 10. Escribe el código

    ¿Quién no comparte su puesto con nadie? Escribe una consulta con dos columnas en este orden, el nombre y el puesto de quien no comparte puesto con nadie, por nombre en orden alfabético. La copia de adentro de empleados se llama x.

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →