MySQL-Spickzettel
Eine durchsuchbare, druckbare MySQL-Referenz — Abfragen, Joins, Indizes, Funktionen, Datentypen und Verwaltungsbefehle. Kostenlos.
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
Kein Eintrag passt zu „:q“.
Über MySQL-Spickzettel
Dieses MySQL-Spickzettel sammelt das SQL, das Sie tatsächlich eingeben, auf einer durchsuchbaren Referenz: Abfragen, Joins, Aggregation, Datenänderung, Schema und DDL-Anweisungen, Indizes und Schlüssel, Datentypen mit ihren Größen und Grenzen, eingebaute Funktionen sowie Transaktionen und Administrationsbefehle.
Es ist sowohl als Syntax-Erinnerung nützlich – die genaue Form eines LEFT JOIN, eines UPSERT oder eines ALTER TABLE – als auch als Nachschlagewerk für die Details, die niemand auswendig kennt, wie Integer-Bereiche, VARCHAR-Grenzen und welcher Indextyp zu einer Abfrage passt.
Wie jedes Spickzettel im Tools-Bereich ist es kostenlos und clientseitig: filtern Sie Zeilen live mit dem Suchfeld, springen Sie zwischen Abschnitten mit dem sticky Inhaltsverzeichnis, kopieren Sie jede Anweisung mit einem Klick und drucken Sie die Seite als Referenz am Schreibtisch.
So verwenden Sie MySQL-Spickzettel
- Öffnen Sie das Blatt und überprüfen Sie die Abschnitte, von Abfragen und Joins über Schema/DDL bis Transaktionen & Administration.
- Suchen Sie nach einem Schlüsselwort wie JOIN, INDEX oder GROUP BY, um alle Snippets live zu filtern.
- Springen Sie zu Datentypen oder Typgrößen & Grenzen, wenn Sie Speicherdetails statt Syntax benötigen.
- Klicken Sie auf eine Anweisung oder deren Kopieren-Symbol, um das SQL in Ihre Zwischenablage zu kopieren.
- Nutzen Sie Drucken für eine Papierkopie der vollständigen MySQL-Referenz.