MySQL-fusklapp
En sökbar, utskrivbar MySQL-referens — frågor, joins, index, funktioner, datatyper och administrationskommandon. Gratis.
Frågor
10SELECT * FROM users;
Välj alla kolumner och rader
SELECT id, name FROM users;
Välj specifika kolumner
SELECT DISTINCT city FROM users;
Endast unika värden
WHERE age > 18 AND active = 1
Filtrera rader efter villkor
WHERE name LIKE 'A%'
Mönstermatchning (% = valfria tecken)
WHERE id IN (1, 2, 3)
Matcha valfritt värde i en mängd
WHERE age BETWEEN 18 AND 30
Inkluderande intervallfilter
ORDER BY created_at DESC
Sortera fallande
LIMIT 10 OFFSET 20
Paginera resultat
WHERE email IS NULL
Matcha null-värden
Joins
8INNER JOIN orders ON orders.user_id = users.id
Rader som matchar i båda tabellerna
LEFT JOIN orders ON ...
Alla vänsterrader + träffar
RIGHT JOIN orders ON ...
Alla högerrader + träffar
CROSS JOIN colors
Kartesisk produkt
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
Joina en tabell med sig själv
USING (user_id)
Joina på en likanamnad kolumn
UNION / UNION ALL
Kombinera resultatmängder
SELECT u.*, o.total FROM users u JOIN orders o
Aliasera tabeller för tydlighet
Aggregering
9COUNT(*)
Räkna rader
SUM(amount)
Summa av en numerisk kolumn
AVG(price)
Medelvärde
MIN(price), MAX(price)
Minsta och största
GROUP BY country
Gruppera rader för aggregering
HAVING COUNT(*) > 5
Filtrera på aggregerade grupper
GROUP_CONCAT(name)
Sammanfoga grupperade värden
COUNT(DISTINCT city)
Räkna unika värden
ROW_NUMBER() OVER (ORDER BY id)
Rangordning med fönsterfunktion
Ändra data
8INSERT INTO users (name) VALUES ('Sam');
Infoga en enstaka rad
INSERT INTO users (name) VALUES ('A'),('B');
Infoga flera rader
UPDATE users SET active = 1 WHERE id = 5;
Uppdatera matchande rader
DELETE FROM users WHERE id = 5;
Ta bort matchande rader
TRUNCATE TABLE logs;
Ta bort alla rader snabbt
INSERT ... ON DUPLICATE KEY UPDATE
Upsert på en unik nyckel
REPLACE INTO users ...
Ta bort + infoga vid konflikt
INSERT IGNORE INTO ...
Hoppa över rader som skulle ge fel
Schema / DDL
9CREATE TABLE users (id INT PRIMARY KEY);
Skapa en ny tabell
AUTO_INCREMENT
Automatiskt numrerande kolumn
ALTER TABLE users ADD COLUMN age INT;
Lägg till en kolumn
ALTER TABLE users DROP COLUMN age;
Ta bort en kolumn
ALTER TABLE users MODIFY name VARCHAR(100);
Ändra en kolumntyp
DROP TABLE IF EXISTS users;
Ta bort en tabell
FOREIGN KEY (user_id) REFERENCES users(id)
Referera en annan tabell
ON DELETE CASCADE
Kaskadradera till barn
CREATE TABLE t2 LIKE t1;
Kopiera en tabellstruktur
Index och nycklar
8PRIMARY KEY (id)
Unik radidentifierare
UNIQUE (email)
Framtvinga unika värden
CREATE INDEX idx_name ON users (name);
Snabba upp uppslag på en kolumn
CREATE INDEX idx_ab ON t (a, b);
Sammansatt (flerkolumns) index
DROP INDEX idx_name ON users;
Ta bort ett index
FULLTEXT (body)
Fulltextsökindex
EXPLAIN SELECT ...;
Visa frågeplanen
SHOW INDEX FROM users;
Lista index på en tabell
Datatyper
9INT, BIGINT, TINYINT
Heltalstyper efter storlek
DECIMAL(10, 2)
Exakta fastpunktstal
VARCHAR(255)
Sträng med variabel längd
TEXT, LONGTEXT
Stora textblobbar
DATE, DATETIME, TIMESTAMP
Datum- och tidstyper
BOOLEAN (TINYINT(1))
True/false lagrat som 0/1
JSON
Inbyggd JSON-dokumentkolumn
ENUM('a', 'b')
Ett av en fast uppsättning värden
UNSIGNED
Icke-negativ numerisk modifierare
Type sizes & limits
20TINYINT
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
Funktioner
9NOW(), CURDATE()
Aktuell datumtid / datum
DATE_FORMAT(d, '%Y-%m-%d')
Formatera ett datum
DATEDIFF(a, b)
Dagar mellan två datum
CONCAT(a, ' ', b)
Sammanfoga strängar
COALESCE(a, b, 'n/a')
Första icke-null-värdet
IFNULL(x, 0)
Ersätt null med ett standardvärde
CASE WHEN x > 0 THEN '+' ELSE '-' END
Villkorsuttryck
CAST(x AS CHAR)
Konvertera en värdetyp
ROUND(x, 2)
Avrunda till decimaler
Transaktioner och administration
9START TRANSACTION;
Påbörja en transaktion
COMMIT;
Spara transaktionen permanent
ROLLBACK;
Ångra transaktionen
SAVEPOINT sp1;
Sätt en rollback-punkt
SHOW TABLES;
Lista tabeller i databasen
DESCRIBE users;
Visa en tabellstruktur
SHOW PROCESSLIST;
Lista aktiva anslutningar
GRANT ALL ON db.* TO 'u'@'%';
Bevilja användarprivilegier
mysqldump -u root db > db.sql
Säkerhetskopiera en databas (CLI)
Ingen post matchar “:q”.
Behöver du hjälp?
Hittade du ett problem med det här verktyget? Berätta för oss.