Spec-Zone.ru › MariaDB

Вводный курс по MariaDB

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

Вход в MariaDB

Войдите в свой сервер MariaDB из командной строки следующим образом:

mariadb -u user_name -p -h ip_address db_name

Замените user_name своим именем пользователя базы данных. Замените ip_address именем хоста или адресом вашего сервера. Если вы подключаетесь к MariaDB с того же сервера, с которого вы вошли в систему, то не включайте -h и ip_address. Замените db_name именем базы данных, к которой вы хотите получить доступ (например, test, которая иногда уже создана для целей тестирования — обратите внимание, что Windows не создаёт эту базу данных, и некоторые настройки могут также удалить базу данных test с помощью выполнения mariadb-secure-installation, в таком случае вы можете опустить db_name).

При запросе пароля введите его. Если вход выполнен успешно, вы увидите что-то подобное:

MariaDB [test]> 

Здесь вы будете вводить все ваши SQL-запросы. Подробнее об этом позже. Сейчас давайте посмотрим на компоненты приглашения: часть «MariaDB» означает, что вы подключены к серверу базы данных MariaDB. Слово в скобках — имя вашей базы данных по умолчанию, база данных test в этом примере.

Основы базы данных

Для внесения изменений в базу данных или извлечения данных вам нужно будет ввести SQL-запрос. SQL означает Structured Query Language (Структурированный язык запросов). SQL-запрос, запрашивающий данные, называется запросом. Базы данных хранят информацию в таблицах. Они похожи на электронные таблицы, но гораздо эффективнее управляют данными.

Обратите внимание, что база данных test, возможно, ещё не содержит данных. Если вы хотите следовать за вводным курсом, скопируйте и вставьте следующее в клиент mariadb. Это создаст таблицы, которые мы будем использовать, и добавит в них некоторые данные. Пока не беспокойтесь о понимании; мы дойдём до этого позже.

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);

Обратите внимание на использование точек с запятой выше. Клиент mariadb позволяет вводить очень сложные SQL-запросы на нескольких строках. Он не будет отправлять SQL-запрос, пока вы не наберёте точку с запятой и не нажмёте [Enter].

Давайте посмотрим, что вы сделали до сих пор. Введите следующее:

SHOW TABLES;

+----------------+
| Tables_in_test |
+----------------+
| authors        |
| books          |
| series         |
+----------------+
3 rows in set (0.00 sec)

Обратите внимание, что это отображает список таблиц в базе данных. Если в вашей базе данных test ещё не было таблиц, ваши результаты должны выглядеть так же, как и выше. Теперь введём следующее, чтобы получить информацию об одной из этих таблиц:

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. Символ подстановки ('*') указывает на выбор всех столбцов.

Вставка данных

Предположим теперь, что мы хотим добавить в эту таблицу ещё одну книгу — «Лабиринт костей». Чтобы вставить данные в таблицу, вы можете использовать оператор INSERT. Чтобы вставить информацию о книге, мы введём что-то вроде этого:

INSERT INTO books (Title, SeriesID, AuthorID)
VALUES ("Lair of Bones", 2, 2);

Query OK, 1 row affected (0.00 sec)

Обратите внимание, что мы поместили список столбцов в скобки после имени таблицы, затем ввели ключевое слово VALUES и далее список значений в скобках — в том же порядке, что и столбцы. Мы могли бы расположить столбцы в другом порядке, при условии, что значения находятся в том же порядке, что и столбцы. Обратите внимание, что возвращённое сообщение указывает на то, что выполнение SQL-запроса прошло успешно и была вставлена одна строка.

Выполните следующий SQL-запрос ещё раз и посмотрите, какие результаты будут возвращены:

SELECT * FROM books;

Вы должны увидеть введённые вами данные в последней строке результатов. При рассмотрении данных других книг, предположим, что мы заметили, что название седьмой книги написано неправильно. Оно должно быть «Хоббит», а не «Хоббитт». Нам нужно будет обновить данные для этой строки.

Изменение данных

Чтобы изменить данные в таблице, вы используете оператор 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, из которых есть только одна. Вы можете видеть по возвращённому сообщению, что одна строка соответствовала разделу WHERE и была изменена одна строка. Предупреждений нет, потому что всё прошло хорошо. Выполните оператор SELECT из предыдущего примера, чтобы увидеть, что данные изменились.

Как вы можете видеть, использование MariaDB не очень сложно. Вам просто нужно понять синтаксис SQL, поскольку он не допускает опечаток или неправильного порядка элементов, или других отклонений.

См. также

  • Основы MariaDB
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают позицию MariaDB или какой-либо другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/a-mariadb-primer/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API