🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónPregúntale tú a la base de datos
4 tareas · 25 min · Principiante
La agenda que abriste en la primera sala salió de una consulta. Ahora la escribes tú, contra la misma base, y ves salir las mismas cuatro filas.
Objetivo de la sala
La agenda que abriste en la primera sala salió de una consulta. Ahora la escribes tú, contra la misma base, y ves salir las mismas cuatro filas.Abre el laboratorio. A la izquierda tienes el esquema: las tablas de la clínica y sus columnas. Es lo primero que mira cualquiera al llegar a una base que no conoce, igual que ls en una máquina.
Hay dos tablas: citas y usuarios.
Escribe esto y pulsa Ejecutar (o Ctrl + Enter):
SELECT * FROM citas
Cuatro filas. Son exactamente las que viste en la pantalla de la agenda interna.
Y ahora sabes lo que pasó de verdad aquella mañana: tu navegador pidió /agenda-interna, el servidor ejecutó una consulta parecida a esta, cogió las filas y con ellas fabricó la tabla que leíste. La página nunca tuvo esos datos: los pidió.
El * significa «todas las columnas». Es cómodo para explorar y se desaconseja en código real, por una razón que ya conoces con otro nombre.
Esta tarea se hace en el laboratorio
Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
¿De dónde salieron los nombres que viste en la pantalla de la agenda?
Ver pista de ayuda
Acabas de ejecutar esa consulta tú mismo.
Ahora prueba a pedir dos columnas en vez de todas:
SELECT paciente, hora FROM citas
Mismas cuatro filas, pero sin documento, sin servicio y sin profesional.
Y aquí está la conexión con todo lo que llevas aprendido: eso es el permiso mínimo, en versión SQL.
Si la pantalla solo necesita mostrar quién viene y a qué hora, pedir el documento y el motivo de consulta es traer a la memoria del servidor —y a veces al navegador— datos que nadie iba a usar. Y lo que no se trae no se puede filtrar.
Es el mismo razonamiento que con los permisos de un archivo o los puertos de un servidor: no traigas lo que no necesitas, porque cada dato de más es superficie.
Fíjate además en el detalle que hace grave el escenario de la clínica: la pantalla mostraba Salud mental al lado de un nombre. Eso no era «una columna más». En una clínica, el motivo de consulta es el dato más sensible que hay.
Esta tarea se hace en el laboratorio
Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
¿Por qué se desaconseja `SELECT *` en código real?
Ver pista de ayuda
Es el permiso mínimo, aplicado a los datos.
La palabra que hace útil una consulta es WHERE. Filtra.
SELECT * FROM citas WHERE servicio = 'Salud mental'
Una fila. Y lee la nota que sale debajo, porque importa: acabas de averiguar quién va hoy a salud mental. Con una línea. Ese dato, solo, sin nada más, ya es información médica de una persona identificada.
Ahora filtra por documento, que es como lo haría el portal del paciente:
SELECT * FROM citas WHERE documento = '····5209'
Esa es la consulta que el portal ejecutaría para mostrarle a Amparo su cita. Una fila, la suya. En la nota está el código de la sala.
Fíjate en la forma de la consulta, porque es la que vas a romper en la sala siguiente:
... WHERE documento = 'ALGO'
Ese ALGO no lo escribe el programador. Lo escribe quien usa la aplicación.
Esta tarea se hace en el laboratorio
Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
¿Qué código de sala aparece al filtrar por el documento de Amparo?
Formato esperado: ___-____
Ver pista de ayuda
SELECT * FROM citas WHERE documento = '····5209'
Queda una tabla por mirar:
SELECT usuario, rol FROM usuarios
Tres usuarios y tres roles distintos: paciente, coordinación, administrador.
O sea que la clínica sí tenía roles. El sistema sabía perfectamente que Amparo es paciente y que la agenda del día es de coordinación. La información estaba ahí, en su base de datos.
Lo que faltaba no era el dato. Era la pregunta: nadie comprobaba el rol antes de servir /agenda-interna.
Y esa es la conclusión de la sala, porque cambia dónde se busca un fallo:
Casi nunca falta la información para decidir. Falta la decisión.
Los roles estaban definidos. Los permisos del archivo existían. La versión del sistema estaba escrita en un archivo. En los tres casos el dato estaba y nadie lo consultó en el momento en que había que consultarlo.
Esta tarea se hace en el laboratorio
Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
La clínica tenía roles definidos en su base de datos. ¿Por qué falló igual?
Ver pista de ayuda
El dato estaba. Faltaba la pregunta.
Conectando con la base…
Tablas
citas
- id
- hora
- paciente
- documento
- servicio
- profesional
usuarios
- id
- usuario
- rol
El resultado aparece aquí.
fila(s)
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la academia no funciona de forma segura.
Analíticos
Hoy no activos en la academia; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la academia; quedarán listos si los conectamos y solo si los permites.