Una tabla consigo misma
SQL · Unidad 8: Más uniones
- Plan completo
- SQL
- 10 ejercicios
Otra base, una empresa de nueve personas. Su tabla empleados guarda el nombre, el puesto y el salario mensual de cada persona, y una columna jefe_id. ¿Quién es el jefe de cada una?
jefe_id es una clave foránea, y apunta a la misma tabla en la que está. El jefe de Rita es el 2, y el 2 es Marco, dos filas más arriba. Carmen dirige la empresa y no tiene jefe.
SELECT id, nombre, puesto, jefe_id
FROM empleados
ORDER BY id;Devuelve
| id | nombre | puesto | jefe_id |
|---|---|---|---|
| 1 | Carmen | Directora | NULL |
| 2 | Marco | Gerente | 1 |
| 3 | Paula | Gerente | 1 |
| 4 | Rita | Vendedora | 2 |
| 5 | Nadia | Vendedora | 2 |
| 6 | Samuel | Programador | 3 |
| 7 | Lidia | Programadora | 3 |
| 8 | Fabio | Programador | 3 |
| 9 | Greta | Ilustradora | 1 |
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. Opción múltiple
En la fila de Fabio,
jefe_idvale 3. ¿Dónde se busca ese 3 para saber quién es su jefe?2. Completa el código
¿Quién dirige a quienes programan? En
puesto, unos dicenProgramadory otraProgramadora, y elLIKEse queda con los tres. Completa elON.3. Predice la salida
La misma unión contesta la pregunta al revés. Marco es el empleado 2. Su jefa es Carmen, y él es el jefe de Rita y de Nadia. ¿Qué devuelve esta consulta?
4. Encuentra el bug
Recursos humanos compara el salario de cada vendedora con el de su jefe, que es Marco y gana 3800. La consulta corre sin error y dice que el jefe de Nadia gana 2100. ¿Qué línea tiene el problema?
5. Ordena las líneas
¿A quién dirige cada gerente? Ordena la consulta que da el nombre del gerente y el de cada persona a su cargo, por gerente y, dentro de cada uno, por empleado. Sobran dos líneas.
6. Encuentra el bug
La lista de cada empleado con su jefe. Aquí SQL contesta
ambiguous column namey señala ae.nombre, que lleva su alias delante. ¿Qué línea tiene el problema?7. Predice la salida
Con la copia de los jefes en el
FROM, la misma unión cuenta cuánta gente tiene cada quien a su cargo.jefe_idapunta al jefe directo. A Carmen le apuntan Marco, Paula y Greta. A Marco, Rita y Nadia. A Paula, Samuel, Lidia y Fabio. ¿Qué devuelve esta consulta para los empleados del 1 al 4, que son Carmen, Marco, Paula y Rita?8. Ordena las líneas
¿Quién no dirige a nadie? Ordena la consulta que da sus nombres, en orden alfabético. Sobran dos líneas.
9. Predice la salida
Una tabla puede entrar en una consulta las veces que haga falta. En esta entra tres, y
jjes la copia donde se lee al jefe del jefe. Marco es el empleado 2, y su jefa es Carmen, que no tiene jefe. Rita es la 4, y su jefe es Marco. ¿Qué devuelve esta consulta?10. Escribe el código
El directorio de la empresa. Escribe una consulta con tres columnas en este orden, el nombre de cada persona, su puesto y el nombre de su jefe, que diga
nadiepara quien no lo tiene. Tienen que salir las nueve, por nombre en orden alfabético.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.