MariaDB: учебник для начинающих
Данный учебник создан для изучения основ работы с базой данных MariaDB с помощью программы mysql работающей в коммандной строке. Это не полное руководство и оно не будет касаться сложных тем. Данный документ - это быстрый старт для использования MariaDB.
Вход в MariaDB
Для входа на сервер MariaDB из коммандной строки используйте комманду:
mysql -u //user_name// -p -h //ip_address// //db_name//
Измените user_name на ваше имя в базе данных. Измените ip_address на настоящий адрес или имя вашего сервера. Если вы работаете на компьютере, на котором установлена база данных то не вводите -h
и ip_address. Измените db_name на имя вашей базы данных к которой вы хотите получить доступ (например test, которая уже создана для тестирования).
Далее вам необходимо будет ввести пароль к базе, если пароль введен верно, вы должны увидеть следующее:
MariaDB [test]>
В данной строке вы будете вводить операторы SQL. Подробнее о них позже, а пока давайте рассмотрим само приглашение: "MariaDB" - означает что вы подключены к серверу базы данных MariaDB, в скобках указано имя базы данных с которой вы работаете, в данном примере "test".
Основы базы данных
Чтобы внести изменения в базу данных или получить данные, вам нужно будет ввести оператор SQL. SQL расшифровывается как Язык Структурированных Запросов. Оператор SQL, который запрашивает данные, называется запросом. Базы данных хранят информацию в таблицах. Они похожи на электронные таблицы, но гораздо более эффективны в управлении данными.
Обратите внимание, что база данных test может не содержать данных. Если вы хотите следовать в точности по учебнику, введите следующие комманды в программу mysql. Это создаст таблицы, которые мы будем использовать, и добавим к ним данные. Не беспокойтесь, что пока вы не понимаете эти комманды, мы разберем их позже.
CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE IF NOT EXISTS books ( BookID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Title VARCHAR(100) NOT NULL, SeriesID INT, AuthorID INT); CREATE TABLE IF NOT EXISTS authors (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT); CREATE TABLE IF NOT EXISTS series (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT); INSERT INTO books (Title,SeriesID,AuthorID) VALUES('The Fellowship of the Ring',1,1), ('The Two Towers',1,1), ('The Return of the King',1,1), ('The Sum of All Men',2,2), ('Brotherhood of the Wolf',2,2), ('Wizardborn',2,2), ('The Hobbbit',0,1);
Обратите внимание на точку с запятой, которые используются в коммандах выше. Клиент mysql позволяет вводить очень сложные операторы SQL в несколько строк, но они не будут отправлены в базу данных, пока вы не введете точку с запятой и не нажмете [Enter].
Давайте посмотрим, что сделали предыдущие комманды, введите следующее:
SHOW TABLES; +----------------+ | Tables_in_test | +----------------+ | authors | | books | | series | +----------------+ 3 rows in set (0.00 sec)
Вы должны увидеть список таблиц в базе данных. Если вы не ошиблись в предыдущих коммандах, ваши результаты должны выглядеть также. Давайте теперь введем следующее, чтобы получить информацию об одной из таблиц:
DESCRIBE books; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | BookID | int(11) | NO | PRI | NULL | auto_increment | | Title | varchar(100) | NO | | NULL | | | SeriesID | int(11) | YES | | NULL | | | AuthorID | int(11) | YES | | NULL | | +----------+--------------+------+-----+---------+----------------+
Основной интересующей нас информацией является столбец Field. Другие столбцы представляют полезную информацию о структуре и типе данных в базе данных, но столбец Field дает нам имена, необходимые для извлечения данных из таблицы.
Давайте запросим данные из таблицы books
. Мы сделаем это, выполнив оператор SELECT следующим образом:
SELECT * FROM books; +--------+----------------------------+----------+----------+ | BookID | Title | SeriesID | AuthorID | +--------+----------------------------+----------+----------+ | 1 | The Fellowship of the Ring | 1 | 1 | | 2 | The Two Towers | 1 | 1 | | 3 | The Return of the King | 1 | 1 | | 4 | The Sum of All Men | 2 | 2 | | 5 | Brotherhood of the Wolf | 2 | 2 | | 6 | Wizardborn | 2 | 2 | | 7 | The Hobbbit | 0 | 1 | +--------+----------------------------+----------+----------+ 7 rows in set (0.00 sec)
Этот оператор SQL или запрос, попросит базу данных показать нам все данные в таблице books
. Символ звездочки ('*
') указывает на выбор всех столбцов.
Добавление данных
Предположим, что теперь мы хотим добываить еще одну книгу к таблице. Добавим книгу Lair of Bones. Чтобы вставить данные в таблицу, вы должны использовать оператор INSERT. Чтобы вставить информацию о книге вы должны ввести следующую комманду:
INSERT INTO books (Title, SeriesID, AuthorID) VALUES ("Lair of Bones", 2, 2); Query OK, 1 row affected (0.00 sec)
Обратите внимание, что мы помещаем список столбцов в скобках после имени таблицы, затем вводим ключевое слово VALUES
, за которым следует список значений в круглых скобках, в том же порядке, в котором были перечислены столбцы. Мы могли бы изменить порядок столбцов в запросе, но тогда в списке значений их порядок тоже должен быть изменен. Сообщение в конце указывает на то, что выполнение оператора SQL прошло нормально и была введена одна строка в таблицу.
Выполните инструкцию еще раз и посмотрите на изменения:
SELECT * FROM books;
Вы должны увидеть введенные данные в последнем ряду результатов. Изучая данные других книг, предположим, мы заметили, что название седьмой книги написано неправильно. Оно должно быть The Hobbit, а не The Hobbbit. Нам нужно изменить данные в этой строке.
Изменение данных
Чтобы изменить данные в таблице будем использовать комманду UPDATE. Давайте изменим название книги, упомянутой выше. Для этого введем следующую комманду:
UPDATE books SET Title = "The Hobbit" WHERE BookID = 7; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Обратите внимание на синтаксис этого оператора SQL. Инструкция SET
- место где вы перечисляете столбцы и значения для их установки. WHERE
говорит о том, что вы хотите изменить только те строки, в которых BookID
имеет значение 7
. Из возвращенного сообщения видно, что это одна строка. Предупреждений нет, значит все прошло хорошо. Выполните SELECT чтобы увидеть что данные изменились.
Как видите, использовать MariaDB не очень сложно. Нужно просто понять синтаксис SQL.