Шпаргалка по командам MySQL
MySQL — самая популярная в мире реляционная система управления базами данных с открытым исходным кодом. В этой шпаргалке собраны наиболее часто используемые команды SQL для повседневной разработки и обслуживания баз данных.
Подключение и управление
| Команда | Описание | Пример |
|---|---|---|
mysql -u root -p |
Подключиться к базе данных от имени пользователя root | mysql -u root -p |
exit / quit |
Выйти из командной строки MySQL | exit |
show databases; |
Список всех баз данных | show databases; |
use <db_name>; |
Переключиться на указанную базу данных | use my_app; |
status; |
Просмотр информации о состоянии текущего соединения | status; |
Операции с базами данных и таблицами (DDL)
| Команда | Описание | Пример |
|---|---|---|
create database <name>; |
Создать новую базу данных | create database test_db; |
drop database <name>; |
Удалить базу данных | drop database test_db; |
show tables; |
Список всех таблиц в текущей БД | show tables; |
create table <table> (...); |
Создать новую таблицу | create table users (id int, name varchar(20)); |
describe <table>; |
Просмотр структуры таблицы | describe users; |
alter table <table> add <col>; |
Добавить новый столбец | alter table users add email varchar(50); |
drop table <table>; |
Удалить таблицу | drop table users; |
Операции с данными (DML)
// Вставка данных
insert into users (name, age) values ('Alice', 25), ('Bob', 30);// Запрос данных
select * from users where age > 20 order by id desc limit 10;
select count(*) from users;// Обновление данных
update users set age = 26 where name = 'Alice';// Удаление данных
delete from users where id = 10;
truncate table users; -- Очистить содержимое таблицы и сбросить автоинкремент IDЗапросы объединения (JOIN)
| Type | Описание |
|---|---|
INNER JOIN |
Возвращает строки, имеющие совпадающие значения в обеих таблицах |
LEFT JOIN |
Возвращает все строки из левой таблицы и совпадающие строки из правой |
RIGHT JOIN |
Возвращает все строки из правой таблицы и совпадающие строки из левой |
UNION |
Объединение результатов двух запросов (без дубликатов) |
// Запрос на соединение таблиц
select u.name, o.id from users u
inner join orders o on u.id = o.user_id;Управление индексами
| Команда | Описание |
|---|---|
create index <idx_name> on <table>(<col>); |
Создать обычный индекс |
create unique index ... |
Создать уникальный индекс |
show index from <table>; |
Показать индексы в таблице |
drop index <idx_name> on <table>; |
Удалить индекс |
Пользователи и права доступа (DCL)
| Команда | Описание |
|---|---|
create user 'user'@'host' identified by 'pass'; |
Создать нового пользователя |
grant all privileges on db.* to 'user'@'host'; |
Предоставить привилегии |
revoke all on db.* from 'user'@'host'; |
Отозвать привилегии |
drop user 'user'@'host'; |
Удалить пользователя |
flush privileges; |
Обновить привилегии для вступления в силу |