Ściąga MySQL
Przeszukiwalna, gotowa do druku referencja MySQL — zapytania, złączenia, indeksy, funkcje, typy danych i polecenia administracyjne. Za darmo.
Zapytania
10SELECT * FROM users;
Wybiera wszystkie kolumny i wiersze
SELECT id, name FROM users;
Wybiera określone kolumny
SELECT DISTINCT city FROM users;
Tylko unikalne wartości
WHERE age > 18 AND active = 1
Filtruje wiersze według warunków
WHERE name LIKE 'A%'
Dopasowanie wzorca (% = dowolne znaki)
WHERE id IN (1, 2, 3)
Dopasowuje dowolną wartość ze zbioru
WHERE age BETWEEN 18 AND 30
Filtr zakresu (włącznie)
ORDER BY created_at DESC
Sortuje malejąco
LIMIT 10 OFFSET 20
Stronicowanie wyników
WHERE email IS NULL
Dopasowuje wartości null
Złączenia
8INNER JOIN orders ON orders.user_id = users.id
Wiersze pasujące w obu tabelach
LEFT JOIN orders ON ...
Wszystkie wiersze lewej + dopasowania
RIGHT JOIN orders ON ...
Wszystkie wiersze prawej + dopasowania
CROSS JOIN colors
Iloczyn kartezjański
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
Złączenie tabeli z samą sobą
USING (user_id)
Złączenie po kolumnie o tej samej nazwie
UNION / UNION ALL
Łączy zbiory wyników
SELECT u.*, o.total FROM users u JOIN orders o
Aliasy tabel dla czytelności
Agregacja
9COUNT(*)
Liczy wiersze
SUM(amount)
Suma kolumny liczbowej
AVG(price)
Wartość średnia
MIN(price), MAX(price)
Najmniejsza i największa
GROUP BY country
Grupuje wiersze do agregacji
HAVING COUNT(*) > 5
Filtruje zagregowane grupy
GROUP_CONCAT(name)
Łączy zgrupowane wartości
COUNT(DISTINCT city)
Liczy unikalne wartości
ROW_NUMBER() OVER (ORDER BY id)
Ranking funkcji okna
Modyfikacja danych
8INSERT INTO users (name) VALUES ('Sam');
Wstawia pojedynczy wiersz
INSERT INTO users (name) VALUES ('A'),('B');
Wstawia wiele wierszy
UPDATE users SET active = 1 WHERE id = 5;
Aktualizuje pasujące wiersze
DELETE FROM users WHERE id = 5;
Usuwa pasujące wiersze
TRUNCATE TABLE logs;
Szybko usuwa wszystkie wiersze
INSERT ... ON DUPLICATE KEY UPDATE
Upsert po kluczu unikalnym
REPLACE INTO users ...
Usuwa + wstawia przy konflikcie
INSERT IGNORE INTO ...
Pomija wiersze, które dałyby błąd
Schemat / DDL
9CREATE TABLE users (id INT PRIMARY KEY);
Tworzy nową tabelę
AUTO_INCREMENT
Kolumna z auto-numeracją
ALTER TABLE users ADD COLUMN age INT;
Dodaje kolumnę
ALTER TABLE users DROP COLUMN age;
Usuwa kolumnę
ALTER TABLE users MODIFY name VARCHAR(100);
Zmienia typ kolumny
DROP TABLE IF EXISTS users;
Usuwa tabelę
FOREIGN KEY (user_id) REFERENCES users(id)
Odwołuje się do innej tabeli
ON DELETE CASCADE
Kaskadowe usuwanie elementów potomnych
CREATE TABLE t2 LIKE t1;
Kopiuje strukturę tabeli
Indeksy i klucze
8PRIMARY KEY (id)
Unikalny identyfikator wiersza
UNIQUE (email)
Wymusza unikalne wartości
CREATE INDEX idx_name ON users (name);
Przyspiesza wyszukiwanie po kolumnie
CREATE INDEX idx_ab ON t (a, b);
Indeks złożony (wielokolumnowy)
DROP INDEX idx_name ON users;
Usuwa indeks
FULLTEXT (body)
Indeks wyszukiwania pełnotekstowego
EXPLAIN SELECT ...;
Pokazuje plan zapytania
SHOW INDEX FROM users;
Wyświetla indeksy tabeli
Typy danych
9INT, BIGINT, TINYINT
Typy całkowite według rozmiaru
DECIMAL(10, 2)
Dokładne liczby stałoprzecinkowe
VARCHAR(255)
Ciąg o zmiennej długości
TEXT, LONGTEXT
Duże bloki tekstu
DATE, DATETIME, TIMESTAMP
Typy daty i czasu
BOOLEAN (TINYINT(1))
true/false przechowywane jako 0/1
JSON
Natywna kolumna dokumentu JSON
ENUM('a', 'b')
Jedna z ustalonego zbioru wartości
UNSIGNED
Modyfikator liczbowy nieujemny
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
Funkcje
9NOW(), CURDATE()
Bieżąca data i czas / data
DATE_FORMAT(d, '%Y-%m-%d')
Formatuje datę
DATEDIFF(a, b)
Dni między dwiema datami
CONCAT(a, ' ', b)
Łączy ciągi znaków
COALESCE(a, b, 'n/a')
Pierwsza wartość różna od null
IFNULL(x, 0)
Zastępuje null wartością domyślną
CASE WHEN x > 0 THEN '+' ELSE '-' END
Wyrażenie warunkowe
CAST(x AS CHAR)
Konwersja typu wartości
ROUND(x, 2)
Zaokrągla do miejsc po przecinku
Transakcje i administracja
9START TRANSACTION;
Rozpoczyna transakcję
COMMIT;
Zatwierdza transakcję
ROLLBACK;
Wycofuje transakcję
SAVEPOINT sp1;
Ustawia punkt wycofania
SHOW TABLES;
Wyświetla tabele w bazie danych
DESCRIBE users;
Pokazuje strukturę tabeli
SHOW PROCESSLIST;
Wyświetla aktywne połączenia
GRANT ALL ON db.* TO 'u'@'%';
Nadaje uprawnienia użytkownikowi
mysqldump -u root db > db.sql
Tworzy kopię zapasową bazy (CLI)
Żaden wpis nie pasuje do „:q”.
Potrzebujesz pomocy?
Masz problem z tym narzędziem? Daj nam znać.