Chuleta de SQL
SELECT, WHERE, JOIN, GROUP BY, INSERT/UPDATE/DELETE y creación de tablas, en una página para consultar rápido.
Referencia rápida. Para practicar con un ejecutor de consultas real, ve a los ejemplos interactivos de SQL.
Consultar: SELECT
SELECT nombre, edad FROM usuarios;
SELECT * FROM usuarios WHERE edad >= 18;
SELECT DISTINCT ciudad FROM usuarios;
SELECT * FROM usuarios
WHERE ciudad = 'Madrid' AND edad BETWEEN 20 AND 40
ORDER BY edad DESC
LIMIT 10;
Filtrar: operadores de WHERE
| Operador | Ejemplo |
|---|---|
= != < > <= >= | WHERE precio < 100 |
AND OR NOT | WHERE a = 1 AND (b = 2 OR c = 3) |
LIKE | WHERE nombre LIKE 'A%' (empieza por A) · '%a%' (contiene a) |
IN | WHERE ciudad IN ('Madrid', 'Sevilla') |
BETWEEN | WHERE edad BETWEEN 18 AND 30 |
IS NULL | WHERE telefono IS NULL |
Combinar tablas: JOIN
-- solo filas que casan en ambas tablas
SELECT u.nombre, p.producto
FROM usuarios u
INNER JOIN pedidos p ON p.usuario_id = u.id;
-- todas las de la izquierda, aunque no tengan pedido (NULL)
SELECT u.nombre, p.producto
FROM usuarios u
LEFT JOIN pedidos p ON p.usuario_id = u.id;
Agrupar: GROUP BY
SELECT ciudad, COUNT(*) AS total, AVG(edad) AS media
FROM usuarios
GROUP BY ciudad
HAVING COUNT(*) > 1 -- filtra GRUPOS (WHERE filtra filas)
ORDER BY total DESC;
-- funciones: COUNT(*) SUM(col) AVG(col) MIN(col) MAX(col)
Modificar datos
INSERT INTO usuarios (nombre, edad) VALUES ('Marta', 28);
UPDATE usuarios SET edad = 29 WHERE id = 5; -- ¡no olvides el WHERE!
DELETE FROM usuarios WHERE id = 5; -- ¡tampoco aquí!
UPDATE y DELETE sin WHERE afectan a TODA la tabla. Prueba antes con un
SELECT con el mismo WHERE.Crear tablas
CREATE TABLE usuarios (
id INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE,
edad INT DEFAULT 0,
creado TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE pedidos (
id INT PRIMARY KEY AUTO_INCREMENT,
usuario_id INT,
FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
);
Otras chuletas
Java · Python · JavaScript · Git