SQL cheat sheet

SELECT, WHERE, JOIN, GROUP BY, INSERT/UPDATE/DELETE and creating tables, on one page for quick reference.

Quick reference. To practise with a real query runner, go to the interactive SQL examples.

Querying: 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;

Filtering: WHERE operators

Combining tables: 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;

Grouping: 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)

Modifying data

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í!

Creating tables

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)
);

Other cheat sheets

Java · Python · JavaScript · Git