Inyección SQL
La inyección SQL ocurre cuando datos no confiables se mezclan con el texto de una consulta. La defensa principal son consultas preparadas y valores enlazados, no concatenación.
Inyección SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.
Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.
Esta lección sobre Inyección SQL forma parte del tutorial SQL de The Data Schools. Cada ejemplo está pensado para ejecutarse en el editor con las tablas de demostración Clientes, Productos o Pedidos.
Lee la sintaxis, ejecuta el ejemplo tal cual y después modifica columnas, filtros o valores para comprobar que entiendes el comportamiento de la sentencia.
Consejo: escribe consultas pequeñas y verifica el resultado antes de combinar varias cláusulas. Así localizas errores de sintaxis más rápido.
Errores frecuentes: olvidar la indentación en bloques if, for o def; confundir = con ==; no importar un módulo antes de usarlo.
Filtro seguro con literal
En el editor usamos un valor fijo; en una app real ese valor iría como parámetro enlazado.
Filtro seguro con literal
SELECT Nombre_Cliente, Ciudad FROM Clientes WHERE Nombre_Cliente = 'Ana García';
Resultado:
| Nombre_Cliente | Ciudad |
|---|---|
| Ana García | Madrid |
Ciudad desde lista cerrada
Filtra por una ciudad concreta sin construir SQL dinámico desde entrada del usuario.
Ciudad desde lista cerrada
SELECT TOP 5 Nombre_Cliente, Ciudad FROM Clientes WHERE Ciudad = 'Madrid' ORDER BY Nombre_Cliente;
Resultado:
| Nombre_Cliente | Ciudad |
|---|---|
| Ana García | Madrid |
| Carlos Ruiz | Madrid |
Resumen
- Nunca concatenes entrada del usuario en el texto SQL.
- Usa parámetros para valores y listas permitidas para identificadores dinámicos.
- Concede permisos mínimos y controla los mensajes de error.
Cómo practicar en el editor
1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.