## Управление базами данных
```sql
SHOW DATABASES; #Список всех баз данных
CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci; #используется для создания пустой новой базы.
```
```sh
mysqladmin -u root -p create dbname #Создание базы данных из консоли
```
```sh
mysqladmin -u root -p drop dbname #Удаления базы данных из консоли
```
```sql
DROP DATABASE db_name;#полностью уничтожает существующую базу данных.
USE db_name;#подключиться к базе данных.
SHOW TABLES [FROM db_name]; #список таблиц в базе
SELECT SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db_name'; #NULL если база пустая
```
## Управление пользователями
```sql
SELECT User,Host FROM mysql.user; #Список пользователей
SHOW GRANTS FOR root@localhost; #Список прав у пользователя root@localhost
SHOW GRANTS FOR CURRENT_USER; #список прав для текущего пользователя
CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'passwd'; #Создание нового пользователя
GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'localhost'; #Добавить все привилегии для всех таблиц БД db_name пользователю 'db_user'@'localhost'
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON db_name.* TO 'db_user'@'localhost'; #Добавить выбранные привилегии для всех таблиц БД db_name пользователю 'db_user'@'localhost'
REVOKE ALL ON db_name.* FROM 'db_user'@'localhost'; #Удаление прав пользователя 'db_user'@'localhost' для БД db_name
#Удаление пльзователя:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'db_user'@'localhost';
DROP USER 'db_user'@'localhost';
FLUSH PRIVILEGES; #Перезагрузка привилегий
DELETE FROM mysql.user WHERE user='db_user' AND host='localhost';
SELECT * FROM information_schema.processlist WHERE user='db_user';
FLUSH PRIVILEGES;
```
## Управление таблицами
```sql
CREATE TABLE my_first_table ( #создает новую таблицу. Ваши данные хранятся в таблицах.
first_column text,
second_column integer
);
ALTER TABLE my_first_table; #используется для модификации описания существующих таблиц.
DROP TABLE my_first_table; #полностью уничтожает существующую таблицу.
DESCRIBE #выводит структуру таблицы.
SHOW COLUMNS FROM table_name [FROM db_name]; #список столбцов в таблице
SHOW CREATE TABLE table_name; #показать структуру таблицы в формате "CREATE TABLE"
SHOW INDEX FROM tbl_name; #список индексов
```
## Манипулирование Вашими данными
```sql
SELECT #используется, если Вам требуется считать (выбрать) Ваши данные.
SELECT * FROM weather; #получить все строки таблицы weather
SELECT city, temp_lo, temp_hi, prcp, date FROM weather;
INSERT #используется, если Вам требуется добавить (вставить) новые данные.
INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27'); #Константы, за исключением простых числовых значений, обычно заключаются в апострофы (')
INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29'); #Можно также применить альтернативную запись, перечислив столбцы явно
INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)'); #Тип point требует ввода пары координат, например таким образом
UPDATE #используется, если Вам требуется изменить (обновить) существующие данные.
UPDATE Laptop SET code = 5 WHERE code = 4;
UPDATE wpv_users set user_pass = MD5('trim2013') WHERE user_login = 'andrey';
DELETE #используется, если Вам требуется удалить существующие данные.
REPLACE #используется, если Вам требуется изменить существующие данные или заменить их новыми.
TRUNCATE #используется, если Вам требуется очистить (удалить) все данные из шаблона.
```
## Управление транзакциями
```sql
START TRANSACTION #используется, чтобы начать транзакцию.
COMMIT #используется, чтобы зафиксировать изменения и завершить транзакцию.
ROLLBACK #используется, чтобы "откатить" изменения и завершить транзакцию.
```