Шпаргалка по SQL

## Управление базами данных

```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 #используется, чтобы "откатить" изменения и завершить транзакцию. 
```

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *