MySQL как работать с базой данных

Данная статья скорее небольшая заметка по работе с базой данных, которая содержит основные команды с примерами и отвечает на часть вопросов по MySQL как сделать то или иное действие и нацелена на тех, кто только начинает работать с MySQL. Полную документацию по работе с БД вы можете посмотреть на официальном сайте.

Как подключиться к БД

Чтобы подключиться к mysql используется следующая команда:

$ mysql -u root -p

где

-u root – подключиться под пользователем root
-p – использовать пароль при подключении

После этого будет предложено ввести пароль для пользователя root:

$ mysql -u root -p
Enter password: 

Если mysql сервер только установлен, то по умолчанию пароль – это пустое поле. Если вы его уже изменили, то необходимо ввести указанный вами пароль. Если вы не помните пароль, то можно выполнить подключение из под пользователя root, предварительно авторизовавшись под ним в linux (команда su), на котором установлен mysql сервер:

# mysql

Вы увидите приветственный экран и ожидание ввода команд:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5123
Server version: 5.7.33-36 Percona Server (GPL), Release 36, Revision 7e403c5

Copyright (c) 2009-2021 Percona LLC and/or its affiliates
Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Если требуется подключиться к удаленному серверу, то используется аргумент -h с указанием ip или доменного имени сервера:

$ mysql -u root -p -h pocketadmin.tech

Можно указать сразу базу данных, к которой необходимо подключиться, например mysql:

$ mysql -u root -p -h pocketadmin.tech mysql

Как посмотреть базы данных

После подключение к серверу можно посмотреть существующие базы данных:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

Как выбрать базу данных

Чтобы выбрать необходимую базу данных:

mysql> use mysql;
Database changed

Как посмотреть таблицы в базе данных

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

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

Как посмотреть наименования столбцов в таблице

Для того, чтобы узнать наименование столбцов в определенной таблице, например таблице servers:

mysql> show columns from servers;
+-------------+----------+------+-----+---------+-------+
| Field       | Type     | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| Server_name | char(64) | NO   | PRI |         |       |
| Host        | char(64) | NO   |     |         |       |
| Db          | char(64) | NO   |     |         |       |
| Username    | char(64) | NO   |     |         |       |
| Password    | char(64) | NO   |     |         |       |
| Port        | int(4)   | NO   |     | 0       |       |
| Socket      | char(64) | NO   |     |         |       |
| Wrapper     | char(64) | NO   |     |         |       |
| Owner       | char(64) | NO   |     |         |       |
+-------------+----------+------+-----+---------+-------+
9 rows in set (0.00 sec)

Как создать пользователя

Чтобы создать пользователя user и разрешить ему подключаться только с хоста, на котором установлен mysql сервер (localhost) используя пароль mypassword используется следующая команда:

mysql> CREATE USER 'user@'localhost' IDENTIFIED BY 'mypassword';

Если пользователь будет подключаться удаленно, то необходимо указать ip-адрес, с которого он будет это делать:

mysql> CREATE USER 'user@'192.168.88.100' IDENTIFIED BY 'mypassword';

Если есть необходимость разрешить пользователю подключаться с любого ip-адреса, то используется знак %:

mysql> CREATE USER 'user@'%' IDENTIFIED BY 'mypassword';

Как выдать пользователю права

После создания пользователя ему необходимо выдать права на выполнение определенных действий. Синтаксис команды имеет следующий вид:

mysql> GRANT ALL PRIVILEGES ON mydb.mytb TO 'user'@'localhost';

После ее выполнения мы пользователю user выдали все привилегии на таблицу mytb, которая находится в базе данных mydb. При этом пользователь сможет работать с таблицей только с localhost.

Если требуется выдать права на всю базу данных, вместо указания всех таблиц можно воспользоваться символом *:

mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'user'@'localhost';

В предыдущих примера мы выдавали пользователю все права (ALL PRIVILEGES), но как правило этого не требуется. Пользователю можно выдать следующие права:

CREATE – создание таблиц
SELECT – выборка данных
INSERT – добавление записей в таблицу
UPDATE – изменение записей в таблице
DELETE – удаление записей в таблице
DROP – удаление таблиц

Эти права можно комбинировать, например дать возможность пользователю делать выборку и обновление записей в базе данных:

mysql> GRANT SELECT, UPDATE ON mydb.* TO 'user'@'localhost';

Как сделать запрос

Чтобы получить все записи, которые хранятся в таблице mytb необходимо выполнить запрос:

mysql> SELECT * FROM mytb;

Можно выбрать только определенные колонки с данными, например:

mysql> SELECT column1, column2 FROM mytb;

Можно делать выборку по определенным условиям:

mysql> SELECT column1, column2 FROM mytb WHERE column1 > 10;

В консоли также есть возможность использовать многострочный ввод, завершая его точкой с запятой:

mysql> SELECT column1, column2
    -> FROM mytb
    -> WHERE column1 > 10;

Конечно, выборка из базы данных – это очень обширная тема, которую не раскрыть и отдельной статье. Поэтому не будем останавливаться на этом, мы рассмотрели тему выборки в MySQL как основу, первые шаги.

MySQL как создать базу данных

Для создания базы данных mydb в mysql достаточно выполнить команду:

mysql> CREATE DATABASE mydb;

Как правило, требуется сразу задать кодировку (CHARACTER SET) создаваемой базы, например utf8, а также способ сравнения и упорядочивания (COLLATE) данных в БД:

mysql> CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci;

Как создать таблицу

При создании таблицы mytb необходимо описать все колонки, которые будут присутствовать в ней. Например, пусть в нашей таблице будет храниться имя (name – наименование столбца, VARCHAR(20) – тип данных, строка переменной длины и максимальным размером в 20 байт) и дата рождения (birth – наименование столбца, DATE – тип данных, дата):

mysql> CREATE TABLE mytb (name VARCHAR(20), birth DATE);

Как добавить запись в таблицу

Для добавления данных в таблицу mydb необходимо перечислить заполняемые поля и указать значения для них:

mysql> INSERT mytb (name, birth)
    -> VALUES ('Jon', '1990-02-13');

Можно сразу добавлять несколько записей:

mysql> INSERT mytb (name, birth)
    -> VALUES
    -> ('Jon', '1990-02-13'),
    -> ('Ivan', '1991-12-03');

Как обновить данные в таблице

Для обновления данных в таблице mydb, например даты date требуется указать новое значение и условие, по которому мы находим и обновляем соответствующую запись:

mysql> UPDATE mytb
    -> SET date = '1990-12-03'
    -> WERE name = 'Ivan';

Как удалить данные в таблице

Для удаления определенных данных по условию используется следующий синтаксис:

mysql> DELETE FROM mytb
    -> WHERE name = 'Jon';

Можно удалить все записи, если не указывать условие удаления:

mysql> DELETE FROM mytb;

Как очистить таблицу

Для удаления всех данных или очистке таблицы можно воспользоваться следующей командой:

mysql> TRUNCATE mytb;

MySQL как удалить таблицу

Чтобы удалить таблицу целиком используется команда DROP:

mysql> DROP mytb;

Как удалить базу данных

Используется синтаксис аналогичный удалению таблицы, но при этом указывается база данных:

mysql> DROP mydb;

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

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