EXISTS
SQL · Unidad 9: Subconsultas
- Plan completo
- SQL
- 10 ejercicios
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
| id | nombre | presupuesto |
|---|---|---|
| 1 | Ventas | 50000 |
| 2 | Sistemas | 80000 |
| 3 | Marca | 30000 |
| 4 | Legal | 20000 |
Devuelve
| nombre | salario | depto_id |
|---|---|---|
| Carmen | 5200 | NULL |
| Marco | 3800 | 1 |
| Paula | 4100 | 2 |
| Rita | 1900 | 1 |
| Nadia | 2100 | 1 |
| Samuel | 3000 | 2 |
| Lidia | 3000 | 2 |
| Fabio | 2600 | 2 |
| Greta | 2400 | 3 |
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. 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. Ordena las líneas
¿Quién tiene gente a su cargo? Afuera va la copia
j, y adentro, la copiae. Ordena la consulta. Sobran dos líneas.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 elNULLde Carmen. ¿Qué devuelve?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. 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. 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. Opción múltiple
En la consulta de los departamentos donde trabaja alguien, una compañera cambia
SELECT 1porSELECT e.nombre, e.salario. ¿Qué cambia en el resultado?8. Completa el código
¿Hay dos personas que ganen exactamente lo mismo? Para cada empleado, la subconsulta busca en la copia
xa otra persona con su mismo salario. Completa la condición que impide que cada quien se encuentre a sí mismo.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. 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
empleadosse llamax.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.