Основные команды MYSQL


Основные команды

SHOW DATABASES; - список баз данных
SHOW TABLES [FROM db_name]; - список таблиц в базе
SHOW COLUMNS FROM таблица [FROM db_name]; - список столбцов в таблице
SHOW CREATE TABLE table_name; - показать структуру таблицы в формате "CREATE TABLE"
SHOW INDEX FROM tbl_name; - список индексов
SHOW GRANTS FOR user [FROM db_name]; - привилегии для пользователя.

SHOW VARIABLES; **- значения системных переменных
SHOW [FULL] PROCESSLIST;** - статистика по mysqld процессам
SHOW STATUS; - общая статистика
SHOW TABLE STATUS [FROM db_name]; - статистика по всем таблицам в базе
DESCRIBE - посмотреть структуру таблицы

Создание базы данных и пользователя

CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'localhost' IDENTIFIED BY 'db_password';
FLUSH PRIVILEGES;

Создание пользователя

CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'password';

Добавление доступа для существующего пользователя

GRANT ALL PRIVILEGES ON some_db.* to 'db_user'@'localhost';

Просмотр данных

SELECT * FROM mysql;
SELECT name, type
FROM mydb
WHERE
  name <> 'my_name' AND
  type = 'int';

Просмотр данных плюс сортировка по имени

SELECT name FROM my_table ORDER BY name;

Просмотр данных плюс сортировка по имени и удаление дубликатов

SELECT DISTINCT project FROM staff ORDER BY project;

SQL функции для позволяет вычисления информации.

SELECT COUNT (project) FROM mytable;
SELECT MAX (project) FROM mytable;
SELECT AVG (project) FROM mytable;

Использование регулярных выражений

SELECT name FROM mytable  WHERE name LIKE 'Jo%n';
SELECT x.name, x.project, x.description
FROM staff x, projects x
WHERE
   x.project = x.project_name;

Редактирование данных

Вставка данных

 INSERT INTO mytable VALUES ("ALex", "1986-02-07");
 INSERT INTO mytable(name, birth) VALUES ("ALex", "1986-02-07");

Изменение данных

UPDATE mytable SET birth = "2000-02-07" WHERE name = "Alex";

Удаление данных

 DELETE FROM mytable WHERE name = "Alex";

Изменить пароль

Поменять свой пароль

SET PASSWORD = PASSWORD('пароль')

Поменять пароль определенного пользователя:

SET PASSWORD FOR user@localhost = PASSWORD('user_pass');
SET PASSWORD FOR user@"%" = PASSWORD('user_pass');

# or
UPDATE mysql.user SET Password=PASSWORD('user_pass') WHERE User='user' AND Host='localhost';
FLUSH PRIVILEGES;

# or
GRANT USAGE ON db_name.* TO user@localhost IDENTIFIED BY 'user_pass';

# or
mysqladmin -u userpassword user_pass

Убить рабочие процессы

mysql> SHOW PROCESSLIST; 
mysql> kill <proc num>;

если используется aws rds

CALL mysql.rds_kill(<proc num>);

Mysql Repair

Add to my.cnf

innodb_force_recovery=6

and run

$ mysqlcheck --auto-repair -A -u root -proot

Mysql commands

Create database

**
CREATE DATABASE <Имя базы данных>
CHARACTER SET <Имя кодировки>
COLLATE <Имя правила сравнения>;
**

CREATE DATABASE SalesDept
CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Чтобы просмотреть список используемых в MySQL кодировок,
выполним команду SHOW CHARACTER SET; а чтобы увидеть список
правил сравнения символьных значений – команду SHOW COLLATION;.
SHOW
COLLATION LIKE %1251 %;

Изменить кодировку и/или правило сравнения символьных значений для базы данных

вы можете с помощью команды

ALTER DATABASE <Имя базы данных>
CHARACTER SET <Имя кодировки>
COLLATE <Имя правила сравнения>;

При этом кодировка, используемая в уже существующих таблицах базы данных, оста-
ется прежней; меняется только кодировка, назначаемая по умолчанию для вновь создавае-
мых таблиц.

Удалить базу

DROP DATABASE <Имя базы данных>;

Чтобы увидеть список всех баз, существующих на данном сервере MySQL, выполните команду

SHOW DATABASES;

Работа с таблицами

Создание таблицы

CREATE TABLE <Имя таблицы>
(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],
<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],
...
[<Информация о ключевых столбцах и индексах>])
[<Опциональные свойства таблицы>];
CREATE TABLE Customers
(id SERIAL,
name VARCHAR(100),
phone VARCHAR(20),
address VARCHAR(150),
rating INT,
PRIMARY KEY (id))
ENGINE InnoDB CHARACTER SET utf8;