Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
databases:mysql [2022/10/13 05:21] admin создано |
databases:mysql [2023/08/05 05:05] (текущий) admin [Примеры] |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
Сервер базы данных.\\ | Сервер базы данных.\\ | ||
===== Установка ===== | ===== Установка ===== | ||
- | <code bash># apt install mariadb-server</ | + | <code bash> |
- | + | apt install mariadb-server | |
- | Первоначальная настройка | + | mysql_secure_installation |
- | <code bash># mysql_secure_installation</ | + | </ |
- | + | ||
- | ===== Конфигурация ===== | + | |
Основные конфиги находятся в папке **/ | Основные конфиги находятся в папке **/ | ||
Настройки сервера **50-server.cnf**.\\ | Настройки сервера **50-server.cnf**.\\ | ||
+ | |||
===== Администрирование ===== | ===== Администрирование ===== | ||
После установки, | После установки, | ||
**Бэкапирование БД** | **Бэкапирование БД** | ||
- | <code bash># mysqldump `namedb` > \..\filename.sql</ | ||
- | <code bash># mysqldump --databases db1 db2 [--all-databases] > \..\filename.sql </ | ||
- | **Развернуть из бэкапа** | + | <code bash> |
- | <code bash># | + | mysqldump `namedb` > \..\filename.sql |
- | + | mysqldump --databases db1 db2 [--all-databases] > \..\filename.sql | |
- | ===== Примеры ===== | + | # Развернуть из бэкапа |
- | <code mysql> | + | mysql [`namedb`] < \..\filename.sql |
- | SHOW CREATE DATABASE namedb; | + | |
- | CREATE DATABASE db1 default character set utf8 default collate utf8_general_ci; | + | |
</ | </ | ||
- | <code mysql> | ||
- | CREATE TABLE table1 (Id int, str1 varchar(45));</ | ||
- | <code mysql> | ||
- | GRANT [REVOKE] ALL PRIVILEGES ON db1.* TO ' | ||
- | FLUSH PRIVILEGES; </ | ||
- | <code mysql> | + | ===== Примеры ===== |
- | SELECT User,Host from mysql.user; | + | |
- | SHOW GRANTS FOR ' | + | |
- | </ | + | |
- | * **ALL PRIVILEGES** - все, кроме GRANT; | + | < |
- | * **USAGE PRIVILEGES** - никаких привилегий; | + | < |
- | * **SELECT, | + | <code mysql> |
- | * **CREATE** - создавать таблицы или базы данных; | + | |
- | * **ALTER** - изменять структуру таблиц; | + | SET PASSWORD = PASSWORD(' |
- | | + | |
- | + | ||
- | Запуск команды **mysql** без sudo | + | |
- | <code mysql>SET PASSWORD = PASSWORD(' | + | |
update mysql.user set plugin = ' | update mysql.user set plugin = ' | ||
- | FLUSH PRIVILAGES;</ | + | FLUSH PRIVILAGES; |
+ | |||
+ | # Очистка таблицы + сброс инкремента | ||
+ | truncate table `table`; | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | <code mysql> | ||
+ | SHOW DATABASES; | ||
+ | use db1; | ||
+ | SHOW CREATE DATABASE namedb; | ||
+ | CREATE DATABASE db1 default character set utf8 default collate utf8_general_ci; | ||
+ | CREATE TABLE table1 (Id int, str1 varchar(45)); | ||
+ | </ | ||
- | **Очистка таблицы + сброс инкремента** | ||
- | <code mysql> | ||
Строка 68: | Строка 64: | ||
DEFAULT CHARSET=utf8mb4 | DEFAULT CHARSET=utf8mb4 | ||
COLLATE=utf8mb4_general_ci; | COLLATE=utf8mb4_general_ci; | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | <code mysql> | ||
+ | SELECT User,Host from mysql.user; | ||
+ | |||
+ | CREATE USER ' | ||
+ | GRANT [REVOKE] ALL PRIVILEGES ON db1.* TO ' | ||
+ | |||
+ | CREATE USER ' | ||
+ | SHOW GRANTS FOR ' | ||
+ | |||
+ | FLUSH PRIVILEGES; | ||
+ | |||
+ | * **ALL PRIVILEGES** - все, кроме GRANT; | ||
+ | * **USAGE PRIVILEGES** - никаких привилегий; | ||
+ | * **SELECT, | ||
+ | * **CREATE** - создавать таблицы или базы данных; | ||
+ | * **ALTER** - изменять структуру таблиц; | ||
+ | * **DROP** - удалять таблицы; | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | **Создание таблицы** | ||
+ | <code sql> | ||
+ | create table `table_name` | ||
+ | (`col1` int(11) not null auto_increment, | ||
+ | | ||
+ | primary key(`id`) | ||
+ | ) engine=innodb default charset=utf8 comment=' | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Копирование данных из одной таблицы в другую**\\ | ||
+ | При условии что кол-во столбцов совпадает. | ||
+ | <code sql> | ||
+ | insert into `target_table` | ||
+ | select from `source_table`; | ||
+ | </ | ||
+ | |||
+ | |||
+ | С дополнением статических, | ||
+ | <code sql> | ||
+ | insert into `target_table` | ||
+ | select 0, ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Переворот значения в ячейке** | ||
+ | <code sql> | ||
+ | update `table` set `col1`= not `col1` where *; | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Условие выбора**\\ | ||
+ | На примере проверки даты | ||
+ | <code sql> | ||
+ | if(`date` = CurDate(), ' | ||
+ | |||
+ | select if(1=1, ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Объединение запросов**\\ | ||
+ | Объединяет несколько запросов в один результат, | ||
+ | <code sql> | ||
+ | select `col1`, `col2` from `tab1` | ||
+ | union | ||
+ | select `col1`, `col2` from `tab2` | ||
+ | order by `col1` asc; | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Усечение строки**\\ | ||
+ | Применяется ко всему столбцу, | ||
+ | <code sql> | ||
+ | update `table1` set `col1`= substring(`col1`, | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Переменные**\\ | ||
+ | <code sql> | ||
+ | SELECT @start := 1, @finish := 10; | ||
+ | SELECT * FROM places WHERE place BETWEEN @start AND @finish; | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | <code mysql> | ||
+ | # Запуск команды **mysql** без sudo | ||
+ | SET PASSWORD = PASSWORD(' | ||
+ | update mysql.user set plugin = ' | ||
+ | FLUSH PRIVILAGES; | ||
+ | |||
+ | # Очистка таблицы + сброс инкремента | ||
+ | truncate table `table`; | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | **Создание таблицы**\\ | ||
+ | <code sql> | ||
+ | create table db-name.dbo[схема].table-name | ||
+ | (id int IDENTITY(1, | ||
+ | field1 nvarchar(max) not null); | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Удаление таблицы с проверкой существования**\\ | ||
+ | <code sql> | ||
+ | if object_id(' | ||
+ | drop table dbname.dbo.tab_test; | ||
+ | |||
+ | # MSSQL 2016 | ||
+ | drop table if exists dbname.dbo.tab_test; | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||