Aide-mémoire MySQL
Une référence MySQL consultable et imprimable : requêtes, jointures, index, fonctions, types de données et commandes d'administration. Gratuit.
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
Aucune entrée ne correspond à « :q ».
À propos de Aide-mémoire MySQL
Cet aide-mémoire MySQL rassemble le SQL que vous tapez réellement en une seule référence consultable : requêtage, jointures, agrégation, modification de données, instructions de schéma et DDL, index et clés, types de données avec leurs tailles et limites, fonctions intégrées, et transactions et commandes d'administration.
Il est utile à la fois comme rappel de syntaxe (la forme exacte d'un LEFT JOIN, d'un UPSERT ou d'un ALTER TABLE) et comme lookup pour les détails que personne ne mémorise, comme les plages d'entiers, les limites de VARCHAR et le type d'index adapté à une requête.
Comme toutes les fiches de ce groupe, elle est gratuite et côté client : filtrez les lignes en direct avec la zone de recherche, passez d'une section à l'autre avec le sommaire fixe, copiez n'importe quelle instruction en un clic et imprimez la page pour la consulter à votre bureau.
Comment utiliser Aide-mémoire MySQL
- Ouvrez la fiche et parcourez les sections, de Requêtage et Jointures jusqu'à Transactions et administration, en passant par Schéma / DDL.
- Recherchez un mot-clé comme JOIN, INDEX ou GROUP BY pour filtrer tous les extraits en direct.
- Accédez à Types de données ou Tailles et limites des types quand vous avez besoin de détails de stockage plutôt que de syntaxe.
- Cliquez sur une instruction ou son icône de copie pour copier le SQL dans votre presse-papiers.
- Utilisez Imprimer pour une copie papier de toute la référence MySQL.