Todo SQL básico en una página: SELECT, WHERE, GROUP BY, JOIN y las trampas que caen en los exámenes. Para imprimir o bajar en PDF.
SELECT columnas FROM tabla WHERE condición GROUP BY columna HAVING condición ORDER BY columna DESC LIMIT 10;
Se escribe siempre en este orden.
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
Por eso WHERE no puede usar un COUNT ni un alias del SELECT.
edad > 40 AND ciudad = 'Puerto Sal'
oficio <> 'joyera' OR edad < 30
ciudad IN ('Puerto Sal', 'San Ciro')
edad BETWEEN 30 AND 40
nombre LIKE 'Ma%'
email IS NULLTexto con comillas simples. % es «cualquier cosa».
COUNT(*) -- filas COUNT(email) -- sin NULL COUNT(DISTINCT ciudad) -- distintos SUM(botin) AVG(botin) MIN(botin) MAX(botin)
SELECT ciudad, SUM(botin) FROM robos WHERE botin >= 500 -- filas GROUP BY ciudad HAVING COUNT(*) >= 2; -- grupos
En SELECT, sólo columnas del GROUP BY y agregados.
SELECT nombre, total FROM pedidos WHERE total > (SELECT AVG(total) FROM pedidos);
La de dentro se calcula primero.
-- todo marzo, también de noche fecha >= '2024-03-01' AND fecha < '2024-04-01'
Mejor que BETWEEN cuando la columna guarda la hora.
SELECT DISTINCT ciudad FROM robos; ORDER BY botin DESC -- mayor primero LIMIT 3 -- va al final
Sin ORDER BY, LIMIT devuelve filas cualesquiera.
FROM a LEFT JOIN b ON a.id = b.a_idFROM a JOIN b ON a.id = b.a_id… WHERE b.a_id IS NULLFROM a FULL JOIN b ON a.id = b.a_idcasoabiertogame.com/cero · SQL arcade y casos de detectives que se resuelven con SQL