Todas las herramientas
Gratis

Una referencia de MySQL buscable e imprimible: consultas, joins, índices, funciones, tipos de datos y comandos de administración. Gratis.

Consultas

10
SELECT * FROM users;
Selecciona todas las columnas y filas
SELECT id, name FROM users;
Selecciona columnas específicas
SELECT DISTINCT city FROM users;
Solo valores únicos
WHERE age > 18 AND active = 1
Filtra filas por condiciones
WHERE name LIKE 'A%'
Coincidencia de patrón (% = cualquier carácter)
WHERE id IN (1, 2, 3)
Coincide con cualquier valor de un conjunto
WHERE age BETWEEN 18 AND 30
Filtro de rango inclusivo
ORDER BY created_at DESC
Ordena descendente
LIMIT 10 OFFSET 20
Pagina resultados
WHERE email IS NULL
Coincide con valores null

Joins

8
INNER JOIN orders ON orders.user_id = users.id
Filas que coinciden en ambas tablas
LEFT JOIN orders ON ...
Todas las filas izquierdas + coincidencias
RIGHT JOIN orders ON ...
Todas las filas derechas + coincidencias
CROSS JOIN colors
Producto cartesiano
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
Une una tabla consigo misma
USING (user_id)
Une por columna del mismo nombre
UNION / UNION ALL
Combina conjuntos de resultados
SELECT u.*, o.total FROM users u JOIN orders o
Alias de tablas para mayor claridad

Agregación

9
COUNT(*)
Cuenta filas
SUM(amount)
Total de una columna numérica
AVG(price)
Valor promedio
MIN(price), MAX(price)
El menor y el mayor
GROUP BY country
Agrupa filas para agregar
HAVING COUNT(*) > 5
Filtra grupos agregados
GROUP_CONCAT(name)
Concatena valores agrupados
COUNT(DISTINCT city)
Cuenta valores únicos
ROW_NUMBER() OVER (ORDER BY id)
Ranking con función de ventana

Modificación de datos

8
INSERT INTO users (name) VALUES ('Sam');
Inserta una sola fila
INSERT INTO users (name) VALUES ('A'),('B');
Inserta varias filas
UPDATE users SET active = 1 WHERE id = 5;
Actualiza las filas que coinciden
DELETE FROM users WHERE id = 5;
Elimina las filas que coinciden
TRUNCATE TABLE logs;
Elimina todas las filas rápidamente
INSERT ... ON DUPLICATE KEY UPDATE
Upsert sobre una clave única
REPLACE INTO users ...
Elimina + inserta en conflicto
INSERT IGNORE INTO ...
Omite filas que darían error

Esquema / DDL

9
CREATE TABLE users (id INT PRIMARY KEY);
Crea una tabla nueva
AUTO_INCREMENT
Columna autonumerada
ALTER TABLE users ADD COLUMN age INT;
Agrega una columna
ALTER TABLE users DROP COLUMN age;
Elimina una columna
ALTER TABLE users MODIFY name VARCHAR(100);
Cambia el tipo de una columna
DROP TABLE IF EXISTS users;
Elimina una tabla
FOREIGN KEY (user_id) REFERENCES users(id)
Referencia otra tabla
ON DELETE CASCADE
Elimina en cascada a los hijos
CREATE TABLE t2 LIKE t1;
Copia la estructura de una tabla

Índices y claves

8
PRIMARY KEY (id)
Identificador único de fila
UNIQUE (email)
Impone valores únicos
CREATE INDEX idx_name ON users (name);
Acelera búsquedas en una columna
CREATE INDEX idx_ab ON t (a, b);
Índice compuesto (varias columnas)
DROP INDEX idx_name ON users;
Elimina un índice
FULLTEXT (body)
Índice de búsqueda de texto completo
EXPLAIN SELECT ...;
Muestra el plan de la consulta
SHOW INDEX FROM users;
Lista los índices de una tabla

Tipos de datos

9
INT, BIGINT, TINYINT
Tipos enteros por tamaño
DECIMAL(10, 2)
Números exactos de punto fijo
VARCHAR(255)
String de longitud variable
TEXT, LONGTEXT
Grandes bloques de texto
DATE, DATETIME, TIMESTAMP
Tipos de fecha y hora
BOOLEAN (TINYINT(1))
true/false almacenado como 0/1
JSON
Columna nativa de documento JSON
ENUM('a', 'b')
Uno de un conjunto fijo de valores
UNSIGNED
Modificador numérico no negativo

Type sizes & limits

20
TINYINT
1 byte: -128..127 (0..255 UNSIGNED)
SMALLINT
2 bytes: -32,768..32,767 (0..65,535)
MEDIUMINT
3 bytes: -8.39M..8.39M (0..16.78M)
INT
4 bytes: -2.15B..2.15B (0..4.29B)
BIGINT
8 bytes: ±9.22×10^18 (0..1.84×10^19)
DECIMAL(M, D)
Exact: M up to 65 digits, D up to 30
FLOAT / DOUBLE
4 / 8 bytes approximate floating point
CHAR(M)
Fixed length, 0..255 characters
VARCHAR(M)
0..65,535 bytes (shared 64KB row limit)
TINYTEXT
Up to 255 bytes (~255 chars)
TEXT
Up to 65,535 bytes (64 KB)
MEDIUMTEXT
Up to 16,777,215 bytes (16 MB)
LONGTEXT
Up to 4,294,967,295 bytes (4 GB)
BLOB types
TINY/—/MEDIUM/LONG: 255B..4GB (binary)
JSON
Stored as LONGBLOB, up to ~4 GB
ENUM / SET
ENUM: 65,535 members; SET: 64 members
DATE
1000-01-01 to 9999-12-31 (3 bytes)
DATETIME
1000 to 9999, microseconds (5–8 bytes)
TIMESTAMP
1970-01-01 to 2038-01-19 UTC (4 bytes)
TIME / YEAR
±838:59:59 / 1901..2155

Funciones

9
NOW(), CURDATE()
Fecha y hora / fecha actual
DATE_FORMAT(d, '%Y-%m-%d')
Formatea una fecha
DATEDIFF(a, b)
Días entre dos fechas
CONCAT(a, ' ', b)
Une strings
COALESCE(a, b, 'n/a')
Primer valor no null
IFNULL(x, 0)
Reemplaza null con un valor por defecto
CASE WHEN x > 0 THEN '+' ELSE '-' END
Expresión condicional
CAST(x AS CHAR)
Convierte el tipo de un valor
ROUND(x, 2)
Redondea a decimales

Transacciones y administración

9
START TRANSACTION;
Inicia una transacción
COMMIT;
Confirma la transacción
ROLLBACK;
Deshace la transacción
SAVEPOINT sp1;
Establece un punto de rollback
SHOW TABLES;
Lista las tablas de la base de datos
DESCRIBE users;
Muestra la estructura de una tabla
SHOW PROCESSLIST;
Lista las conexiones activas
GRANT ALL ON db.* TO 'u'@'%';
Otorga privilegios a un usuario
mysqldump -u root db > db.sql
Respalda una base de datos (CLI)

Ninguna entrada coincide con “:q”.


¿Necesitas ayuda?
¿Encontraste un problema con esta herramienta? Avísanos.
Informar de un problema

Añade esta herramienta gratuita a tu propio sitio web: copia y pega el código de abajo.