Чтобы начать знакомство с СУБД в командной строке достаточно освоить самые начальные команды, по средствам которых вы будете выполнять подавляющее число операций.
Сперва, вспомним, как мы осуществляли подключение к серверу MySQL ил MariaDB:
mysql -u [user_name] -p -h [ip_address] [db_name]
Но вероятнее всего ваша команда будет выглядеть так (если вы на том же сервере авторизованны и работаете):
sudo mysql
Если вы увидели в консоли вот эту строчку MariaDB [test]> значит все прошло правильно и вы подключены к серверу базы данных MariaDB, теперь можно непосредственно начинать общение с СУБД (т.е. вводить операторы SQL).
Основы базы данных
Чтобы внести изменения в базу данных или получить данные, вам нужно будет ввести оператор SQL. SQL расшифровывается как Язык Структурированных Запросов. Оператор SQL, который запрашивает данные, называется запросом. Базы данных хранят информацию в таблицах. Они похожи на электронные таблицы, но гораздо более эффективны в управлении данными.
https://mariadb.com/kb/ru/a-mariadb-primer/
Давайте создадим нашу первую базу для хранения данных:
CREATE DATABASE IF NOT EXISTS mydb;
Для создания можно было ограничится оператором CREATE, но гораздо правильнее добавить условие на проверку имени базы данных IF NOT EXISTS .
Что бы убедиться, что все прошло правильно и наша база данных присутствует в СУБД необходимо использовать оператор SHOW
SHOW DATABASES;
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
+--------------------+
Это должно отобразить все базы, которые имеются в системе, вплоть до служебных баз MySQL. Убедившись, что база присутствует давайте выберем ее для дальнейшей работы с ней:
USE mydb;
После выполнения команды, в квадратных скобочках мы увидим базу данных которая в данный момент выбрана.
Database changed
MariaDB [mydb]>
Что то не хватает наше базе данных, верно? Нетрудно догадаться что 🙂 Догадались? Ну да, самих данных! Предположим мы будем хранить в нашей базе информацию об автомобилях. Для этого мы создадим нашу первую таблицу с четырьмя столбцами, в которых будет информация о: названии, годе выпуска авто
CREATE TABLE IF NOT EXISTS cars (
CarID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Title VARCHAR(100) NOT NULL,
SeriesID INT,
ModelID INT);
Давайте разберем этот код. Первая строка проверяет на существование таблицу с заданным названием и в случае, если оно отсутствует — создает. Далее, то что в круглых скобочках, уже является столбцами данной таблицы — ее некоторыми параметрами. Каждый столбец с его опциями разделен запятыми. Нетрудно догадаться, что мы создаем четыре столбца: CarID (который будет числом (параметр INT), то есть иметь только числовые значения, и не допускать не присвоенного значения (об этом указывает параметр — NOT NULL) ). Далее PRIMARY KEY (первичный ключ) — это особый тип уникального ключа. Для каждой таблицы может быть не более одного первичного ключа. И последний параметр AUTO_INCREMENT — говорит о том, что значение будет устанавливаться автоматически по принципу счетчика с увеличением на одну единицу.
Ну а далее уже все очевидно… Название (Title) может быть длиной в 100 символов и не может быть пустым. Остальные пару столбиков — числовые значения. Они созданы для того что бы продемонстрировать связи в таблицах БД и они будут содержать внешний ключ, а сами данные будут хранится в других одноименных таблицах, которые мы сейчас и создадим следующими командами:
CREATE TABLE IF NOT EXISTS models
(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT);
CREATE TABLE IF NOT EXISTS series
(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT);
Что ж, база есть, есть таблицы и столбцы для хранения значений и в этом мы можем убедиться при помощи команды:
SHOW TABLES;
MariaDB [mydb]> SHOW TABLES;
+----------------+
| Tables_in_mydb |
+----------------+
| cars |
| models |
| series |
+----------------+
3 rows in set (0.001 sec)
Теперь дело за малым, нам нужно наполнить наши таблицы значениями:
INSERT INTO cars (Title,SeriesID,ModelID)
VALUES('Москвич 412',15,15),
('Жигули ВАЗ 2101',16,16), ('ЗИЛ 130',23,23),
('ГАЗ 3307',45,45), ('УАЗ-450 («Буханка»)',45,45),
('УАЗ Хантер',55,55);
Обратите внимание на точку с запятой, которые используются в коммандах выше. Клиент mysql позволяет вводить очень сложные операторы SQL в несколько строк, но они не будут отправлены в базу данных, пока вы не введете точку с запятой и не нажмете [Enter].
Тут тоже нет ничего трудного. В первой строке мы перечисляем через запятую наши столбцы куда будут добавляться данные, а со второй строки перечисляем значения которые будут наполнять эти самые столбцы. Обратите внимание, что их очередность должна соответствовать перечислению столбцов и их разделителям. В примере видно что мы добавляем пять новых строк и у каждой строки есть три значения взятые в круглые скобки и соответственно разделенные между собой запятыми, чтобы при парсинге программа правильно поняла что и куда добавлять.
После выполнения этой комманды, давайте DESCRIBE, который предоставит нам информацию о столбцах в таблице. Это синоним (ярлык) для SHOW COLUMNS FROM
получим:
MariaDB [mydb]> DESCRIBE cars;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| CarID | int(11) | NO | PRI | NULL | auto_increment |
| Title | varchar(100) | NO | | NULL | |
| SeriesID | int(11) | YES | | NULL | |
| ModelID | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
4 rows in set (0.002 sec)
Теперь воспользуемся оператором SELECT и запросим данные из таблицы cars:
SELECT * FROM cars;
Звездочка означает, что мы запрашиваем все столбцы из этой таблицы. получим:
MariaDB [mydb]> SELECT * FROM cars;
+-------+---------------------------------+----------+---------+
| CarID | Title | SeriesID | ModelID |
+-------+---------------------------------+----------+---------+
| 1 | Москвич 412 | 15 | 15 |
| 2 | Жигули ВАЗ 2101 | 16 | 16 |
| 3 | ЗИЛ 130 | 23 | 23 |
| 4 | ГАЗ 3307 | 45 | 45 |
| 5 | УАЗ-450 («Буханка») | 45 | 45 |
| 6 | УАЗ Хантер | 55 | 55 |
+-------+---------------------------------+----------+---------+
Если бы нас интересовали данные исключительно из столбца Title, то запись запроса выглядела бы следующим образом:
SELECT Title FROM cars;
получим:
MariaDB [mydb]> SELECT Title FROM cars;
+---------------------------------+
| Title |
+---------------------------------+
| Москвич 412 |
| Жигули ВАЗ 2101 |
| ЗИЛ 130 |
| ГАЗ 3307 |
| УАЗ-450 («Буханка») |
| УАЗ Хантер |
+---------------------------------+
Добавлять данные мы можем также при помощи оператора INSERT и задавая значения VALUES. Но вдруг, случилось так, что нам необходимо обновить данные в какой то из строк. Для этих целей существует оператор UPDATE. Нам нужно за что то зацепиться и этим что то и будет являться первичный ключ — айди нужной нам строки, именно по нему мы будем ее уникально идентифицировать. Запрос будет выглядеть так:
UPDATE cars
SET Title = "УАЗ-450"
WHERE CarID = 5;
Попробуйте самостоятельно понять этот запрос.