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

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

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