MySQL - Записки для 8.4
База данных
SHOW DATABASES; # показать список Баз Данных
CREATE DATABASE example_db DEFAULT CHARSET=utf8; # создание базы данных
DROP DATABASE example_db; # удаление БД (IF EXIST) # если сущуствует
USE example_db; # перейти (использовать) БД
Таблицы
SHOW TABLES; # показать список таблиц
DESCRIBE example_table; # показать структуру таблицы
CREATE TABLE `example_table` (
`id` int(11) AUTO_INCREMENT,
`name` varchar(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB; # создание таблицы с двумя столбцами
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`group_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`)
ON UPDATE CASCADE
ON DELETE CASCADE
) ENGINE=InnoDB; # создание таблицы с каскадными связями, удаление строки ведет к удалению связанных строк
TRUNCATE TABLE example_table; # очистка таблицы вместе со значением инкремента
DROP TABLE example_table; # удаление таблицы
Пользователи и привелегии
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'pass'; # создаем пользователя
DROP USER 'example_user'@'localhost';
SHOW GRANTS; # показать привилегии (права) текущего пользователя
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost'; # даем полные привилегии пользователю на БД
REVOKE ALL PRIVILEGES ON example_db.* FROM 'example_user'@'localhost'; # удалить все привилегии с конкретной БД
FLUSH PRIVILEGES; # Применить изменения
Вставка данных
INSERT INTO example_table VALUES (NULL, 'test_username'); # вставка соблюдением последовательности колонок
INSERT INTO `department` (`group_id`, `name`)
VALUES
(4, 'Гриша'),
(5, 'Иван'); # многострочная вставка с явным указанием столбцов
Выборка данных
#### SELECT - выборка данных
# AS - переименование полей, к примеру `id` AS `Identificator`
# DISTINCT - только уникальные значения
#### WHERE - операторы условий: = | > | < | >= | =< | != | LIKE (% | _) | IN | NOT IN | | BETWEEN | NOT BEETWEN
# AND, OR логические операторы
# (+ | * ..), COUNT(), MIN(), MAX(), AVG(), SUM() - агрегационные функции
# CONCAT(), SUBSTRING(), REPLACE() - стоковые функции
# ABS(), MOD(), ROUND(), FLOOR(), CEIL() - математические функции
# NOW(), WEEKDAY(), DAYOFMONTH(), MONTH() - функции для работы с датой и временем
# GRUOP BY - группировка по
# HAVING - условия после группировки, аналогично where (можно использовать агрегатные функции)
# ORDER BY - сортировка, пример id ASC, name DESC
# LIMIT $ - ограничение на кол-во
# OFFSET $ - сдвиг (отступ) на кол-во
SELECT {fields} WHERE {conditions} {MORE..} FROM example_table; # структура запроса
назад