MySQL Spiekbriefje
Een doorzoekbare, afdrukbare MySQL-referentie — query's, joins, indexen, functies, datatypes en beheercommando's. Gratis.
Querying
10SELECT * FROM users;
SELECT id, name FROM users;
SELECT DISTINCT city FROM users;
WHERE age > 18 AND active = 1
WHERE name LIKE 'A%'
WHERE id IN (1, 2, 3)
WHERE age BETWEEN 18 AND 30
ORDER BY created_at DESC
LIMIT 10 OFFSET 20
WHERE email IS NULL
Joins
8INNER JOIN orders ON orders.user_id = users.id
LEFT JOIN orders ON ...
RIGHT JOIN orders ON ...
CROSS JOIN colors
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
USING (user_id)
UNION / UNION ALL
SELECT u.*, o.total FROM users u JOIN orders o
Aggregation
9COUNT(*)
SUM(amount)
AVG(price)
MIN(price), MAX(price)
GROUP BY country
HAVING COUNT(*) > 5
GROUP_CONCAT(name)
COUNT(DISTINCT city)
ROW_NUMBER() OVER (ORDER BY id)
Modifying data
8INSERT INTO users (name) VALUES ('Sam');
INSERT INTO users (name) VALUES ('A'),('B');
UPDATE users SET active = 1 WHERE id = 5;
DELETE FROM users WHERE id = 5;
TRUNCATE TABLE logs;
INSERT ... ON DUPLICATE KEY UPDATE
REPLACE INTO users ...
INSERT IGNORE INTO ...
Schema / DDL
9CREATE TABLE users (id INT PRIMARY KEY);
AUTO_INCREMENT
ALTER TABLE users ADD COLUMN age INT;
ALTER TABLE users DROP COLUMN age;
ALTER TABLE users MODIFY name VARCHAR(100);
DROP TABLE IF EXISTS users;
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE CASCADE
CREATE TABLE t2 LIKE t1;
Indexes & keys
8PRIMARY KEY (id)
UNIQUE (email)
CREATE INDEX idx_name ON users (name);
CREATE INDEX idx_ab ON t (a, b);
DROP INDEX idx_name ON users;
FULLTEXT (body)
EXPLAIN SELECT ...;
SHOW INDEX FROM users;
Data types
9INT, BIGINT, TINYINT
DECIMAL(10, 2)
VARCHAR(255)
TEXT, LONGTEXT
DATE, DATETIME, TIMESTAMP
BOOLEAN (TINYINT(1))
JSON
ENUM('a', 'b')
UNSIGNED
Type sizes & limits
20TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
DECIMAL(M, D)
FLOAT / DOUBLE
CHAR(M)
VARCHAR(M)
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
BLOB types
JSON
ENUM / SET
DATE
DATETIME
TIMESTAMP
TIME / YEAR
Functions
9NOW(), CURDATE()
DATE_FORMAT(d, '%Y-%m-%d')
DATEDIFF(a, b)
CONCAT(a, ' ', b)
COALESCE(a, b, 'n/a')
IFNULL(x, 0)
CASE WHEN x > 0 THEN '+' ELSE '-' END
CAST(x AS CHAR)
ROUND(x, 2)
Transactions & admin
9START TRANSACTION;
COMMIT;
ROLLBACK;
SAVEPOINT sp1;
SHOW TABLES;
DESCRIBE users;
SHOW PROCESSLIST;
GRANT ALL ON db.* TO 'u'@'%';
mysqldump -u root db > db.sql
Geen vermelding komt overeen met “:q”.
Over MySQL Spiekbriefje
Deze MySQL-cheatsheet verzamelt de SQL die je daadwerkelijk typt in één doorzoekbare referentie: querying, joins, aggregatie, gegevens wijzigen, schema en DDL-statements, indexen en keys, datatypes met hun groottes en limieten, ingebouwde functies, en transacties en beheercommando's.
Hij is nuttig zowel als syntaxherinnering — de exacte vorm van een LEFT JOIN, een UPSERT of een ALTER TABLE — als als naslagwerk voor de details die niemand uit het hoofd kent, zoals integer-bereiken, VARCHAR-limieten en welk indextype bij een query past.
Zoals elke cheatsheet in de tools is hij gratis en client-side: filter rijen live met het zoekvak, spring tussen secties met de sticky inhoudsopgave, kopieer elke statement met één klik en print de pagina voor referentie naast je bureau.
Hoe gebruik je MySQL Spiekbriefje
- Open de sheet en bekijk de secties, van Querying en Joins tot Schema/DDL tot Transacties & beheer.
- Zoek naar een trefwoord zoals JOIN, INDEX of GROUP BY om alle snippets live te filteren.
- Spring naar Datatypes of Typegroottes & limieten wanneer je opslagdetails nodig hebt in plaats van syntax.
- Klik op een statement of het kopieerpictogram om de SQL naar je klembord te kopiëren.
- Gebruik Print voor een papieren kopie van de volledige MySQL-referentie.