Всі інструменти
Безкоштовно

Довідник MySQL із пошуком і можливістю друку — запити, joins, індекси, функції, типи даних і команди адміністрування. Безкоштовно.

Запити

10
SELECT * 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
Збіг з null-значеннями

З'єднання (JOIN)

8
INNER 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
Псевдоніми таблиць для ясності

Агрегація

9
COUNT(*)
Підрахувати рядки
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)
Ранжування віконною функцією

Зміна даних

8
INSERT 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
Upsert за унікальним ключем
REPLACE INTO users ...
Видалити + вставити при конфлікті
INSERT IGNORE INTO ...
Пропустити рядки, що дали б помилку

Схема / DDL

9
CREATE 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;
Скопіювати структуру таблиці

Індекси та ключі

8
PRIMARY 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;
Перелік індексів таблиці

Типи даних

9
INT, BIGINT, TINYINT
Цілі типи за розміром
DECIMAL(10, 2)
Точні числа з фіксованою комою
VARCHAR(255)
Рядок змінної довжини
TEXT, LONGTEXT
Великі текстові блоби
DATE, DATETIME, TIMESTAMP
Типи дати й часу
BOOLEAN (TINYINT(1))
True/false зберігається як 0/1
JSON
Нативний стовпець JSON-документа
ENUM('a', 'b')
Одне зі сталого набору значень
UNSIGNED
Модифікатор невід'ємного числа

Type sizes & limits

20
TINYINT
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

Функції

9
NOW(), CURDATE()
Поточні дата-час / дата
DATE_FORMAT(d, '%Y-%m-%d')
Форматувати дату
DATEDIFF(a, b)
Дні між двома датами
CONCAT(a, ' ', b)
З'єднати рядки
COALESCE(a, b, 'n/a')
Перше ненульове значення
IFNULL(x, 0)
Замінити null значенням за замовчуванням
CASE WHEN x > 0 THEN '+' ELSE '-' END
Умовний вираз
CAST(x AS CHAR)
Перетворити тип значення
ROUND(x, 2)
Округлити до десяткових

Транзакції та адміністрування

9
START TRANSACTION;
Почати транзакцію
COMMIT;
Зафіксувати транзакцію
ROLLBACK;
Скасувати транзакцію
SAVEPOINT sp1;
Встановити точку відкату
SHOW TABLES;
Перелік таблиць у базі даних
DESCRIBE users;
Показати структуру таблиці
SHOW PROCESSLIST;
Перелік активних з'єднань
GRANT ALL ON db.* TO 'u'@'%';
Надати привілеї користувачу
mysqldump -u root db > db.sql
Резервне копіювання БД (CLI)

Жоден запис не відповідає “:q”.


Поділитися
Потрібна допомога?
Виникла проблема з цим інструментом? Повідомте нас.
Повідомити про проблему

Додайте цей безкоштовний інструмент на власний вебсайт — скопіюйте та вставте код нижче.