SELECT columnas FROM tabla;ConsultarInspeccionar datos sin modificarlos.
Laboratorio 01 · Datos
Haz preguntas a una pequeña tienda ficticia. El motor SQL vive en tu navegador: puedes experimentar, equivocarte y reiniciarlo sin afectar información real.
Guía de consulta
Cada ejemplo indica qué hace y cuándo conviene usarlo. Puedes copiarlo al laboratorio y modificarlo.
SELECT columnas FROM tabla;ConsultarInspeccionar datos sin modificarlos.
WHERE condiciónFiltrarConservar registros que cumplen una regla.
ORDER BY columna DESCOrdenarIdentificar máximos, mínimos o prioridades.
LIMIT 10LimitarExplorar una muestra pequeña.
COUNT(*) / SUM() / AVG()ResumirConstruir indicadores sobre varias filas.
GROUP BY columnaComparar gruposObtener indicadores por categoría o periodo.
HAVING condiciónFiltrar gruposAplicar una condición después de agregar.
JOIN ... ON ...RelacionarCombinar entidades mediante sus claves.
INSERT INTO ... VALUES ...CrearAgregar observaciones nuevas.
UPDATE ... SET ... WHERE ...ActualizarCorregir filas específicas; revisa WHERE.
DELETE FROM ... WHERE ...EliminarRetirar filas; prueba antes con SELECT.
WITH nombre AS (...) SELECT ...Dividir lógicaHacer verificables consultas complejas.
Ruta completa
Una consulta comienza eligiendo columnas. Antes de resumir o filtrar, observa la estructura y confirma qué representa cada fila.
SELECT nombre, precio
FROM productos;Filtrar no cambia los datos: construye una vista enfocada. Ordenar ayuda a encontrar extremos, pero debes indicar ascendente o descendente.
SELECT nombre, stock
FROM productos
WHERE stock < 20
ORDER BY stock ASC;Las agregaciones convierten muchas filas en indicadores. GROUP BY define la unidad de comparación; una cifra sin grupo puede ocultar diferencias importantes.
SELECT categoria,
ROUND(AVG(precio), 2) AS precio_promedio
FROM productos
GROUP BY categoria;Un JOIN combina tablas mediante una relación explícita. Revisa la cardinalidad: una unión incorrecta puede duplicar filas y alterar los totales.
SELECT p.nombre, v.cantidad, v.fecha
FROM ventas v
JOIN productos p ON p.id = v.producto_id;Una CTE permite nombrar un resultado intermedio. Úsala para que la lógica sea verificable por etapas, no solamente para hacer una consulta más larga.
WITH totales AS (
SELECT producto_id, SUM(cantidad) unidades
FROM ventas GROUP BY producto_id
)
SELECT * FROM totales;La consulta final debe responder una pregunta operativa. Explica el indicador, sus límites y qué acción podría cambiar con el resultado.
SELECT p.nombre,
SUM(v.cantidad*p.precio) AS ingreso
FROM productos p JOIN ventas v
ON v.producto_id=p.id
GROUP BY p.nombre ORDER BY ingreso DESC;Antes de continuar