MariaDB Учебное пособие: изучение синтаксиса и команд с примерами

Что такое MariaDB?

MariaDB является ответвлением MySQL система управления базами данных. Он создан его оригинальными разработчиками. Этот инструмент СУБД предлагает возможности обработки данных как для небольших, так и для корпоративных задач.

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

Вот особенности MariaDB:

  • Он работает под лицензиями GPL, BSD или LGPL.
  • MariaDB поддерживает популярный и стандартный язык запросов.
  • Он поставляется со многими механизмами хранения, в том числе высокопроизводительными, которые можно интегрировать с другими системами управления реляционными базами данных.
  • Он предоставляет кластерную технологию Galera.
  • MariaDB поддерживает PHP, популярный язык веб-разработки.
  • MariaDB может работать в разных операционных системах и поддерживает множество языков программирования.
  • MariaDB поставляется с дополнительными командами, которых нет в MySQL. MySQL имеет особенности, которые негативно влияют на производительность СУБД. Такие функции были заменены в MariaDB.

MariaDB против MySQL

Ниже приведены некоторые ключевые различия между MariaDB vs MySQL

Параметр MariaDB MySQL
Дополнительные возможности для механизмов хранения MariaDB имеет 12 новых механизмов хранения, которых вы не найдете в MySQL. Имеет меньше возможностей для хранения по сравнению с MariaDB.
Улучшения скорости MariaDB показывает улучшенную скорость по сравнению с MySQL. Он поставляется с многочисленными функциями для оптимизации скорости. К таким функциям относятся производные представления/таблицы, подзапросы, контроль выполнения, доступ к диску и управление оптимизатором. MySQL демонстрирует более низкую скорость по сравнению с MariaDB. Он использует лишь несколько функций для оптимизации скорости, например, хэш-индексы.
Более быстрый кеш/индексы Благодаря механизму хранения памяти MariaDB, оператор INSERT может быть завершен на 24%, чем в стандартном MySQL. Механизм хранения памяти MySQL медленнее по сравнению с этим MariaDB.
Больший и более быстрый пул соединений MariaDB поставляется с расширенным пулом потоков, способным работать быстрее и поддерживать до 200,000 XNUMX+ соединений. Пул потоков, предоставляемый MySQL не может поддерживать до 200,000 XNUMX подключений за раз.
Улучшенная репликация In MariaDB, репликация может выполняться безопаснее и быстрее. Обновления также можно выполнять в 2 раза быстрее по сравнению с традиционными версиями. MySQL. MySQLредакция сообщества позволяет подключать статическое количество потоков. MySQLКорпоративный план включает в себя возможности потоков.
Новые функции/расширения MariaDB поставляется с новыми функциями и расширениями, включая операторы JSON, With и KILL. Новый MariaDB функции не предусмотрены MySQL.
Недостающие особенности MariaDB отсутствуют некоторые функции, предоставляемые MySQL корпоративное издание. Чтобы решить эту проблему, он предлагает альтернативные плагины с открытым исходным кодом. Следовательно, MariaDB пользователи могут пользоваться теми же функциями, что и MySQL Пользователи Enterprise Edition. Корпоративное издание MySQL использует собственный код. Только пользователи MySQL Enterprise Edition имеет к этому доступ.

Как установить MariaDB

Установить как отдельное приложение

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

Установку можно выполнить, выполнив следующие действия:

Шаг 1) Открыть ниже URL
Загрузите установочный файл по ссылке https://downloads.mariadb.org/

Шаг 2) Double щелкните файл, чтобы начать установку
После завершения загрузки откройте файл

Шаг 3) Нажмите кнопку Далее
В появившемся окне нажмите кнопку Далее:

Установка MariaDB

Шаг 4) Принять лицензионное соглашение
Затем нажмите кнопку Далее:

Установка MariaDB

Шаг 5) Выберите MariaDB серверу
Выберите функции, которые необходимо установить, и нажмите «Далее».

Установка MariaDB

Шаг 6) Введите пароль
В следующем окне вам будет предложено изменить пароль для пользователя root.

  1. Введите пароль и подтвердите его, введя тот же пароль еще раз. Если вы хотите разрешить доступ с удаленных машин, установите необходимый флажок.
  2. После этого нажмите кнопку Далее.

Установка MariaDB

Шаг 7) Введите имя и выберите номер порта
В следующем окне введите имя экземпляра, выберите номер порта и установите необходимый размер. Нажмите кнопку Далее:

Установка MariaDB

Шаг 8) Нажмите Далее
В следующем окне просто нажмите кнопку «Далее».

Шаг 9) Нажмите на Установить
Запустите установку, нажав кнопку «Установить».

Установка MariaDB

Шаг 10) Показан индикатор выполнения
Будет показан индикатор выполнения, показывающий ход установки:

Установка MariaDB

Шаг 11) Нажмите кнопку «Готово».
После завершения установки вы увидите кнопку Готово. Нажмите кнопку, чтобы закрыть окно:

Установка MariaDB

Шаг 12) Поздравляем!
Теперь у вас есть MariaDB установленных на вашем компьютере.

Работа с командной строкой

Теперь, когда у вас есть MariaDB установлен на вашем компьютере, пришло время запустить его и начать использовать. Это можно сделать через MariaDB командной строки.

Следуйте инструкциям ниже:

Шаг 1) Нажмите «Пуск», выберите «Все программы», затем нажмите «Пуск». MariaDB...

Шаг 2) Выбрать MariaDB Командная строка.

MariaDB Командная строка

Шаг 3) Команда MariaDB командная строка будет запущена. Пришло время войти в систему. Вы должны войти в систему как пользователь root и пароль, который вы установили во время установки. MariaDB. Введите следующую команду в командной строке:

MySQL -u root -p

Шаг 4) Введите пароль и нажмите клавишу возврата. Вы должны войти в систему, как показано ниже:

MariaDB Командная строка

Вы вошли в систему MariaDB.

Типы данных

MariaDB поддерживает следующие типы данных:

  • Строковые типы данных
  • Числовые типы данных
  • Типы данных даты/времени
  • Типы данных больших объектов

Строковые типы данных

К ним относятся следующие:

Строка Тип данных Описание
символ (размер) Размер обозначает количество символов, которые необходимо сохранить. Он хранит максимум 255 символов. Строки фиксированной длины.
варчар (размер) Размер обозначает количество символов, которые необходимо сохранить. Он хранит максимум 255 символов. Строки переменной длины.
размер текста) Размер обозначает количество символов, которые необходимо сохранить. Он хранит максимум 255 символов. Строки фиксированной длины.
двоичный (размер) Размер обозначает количество символов, которые необходимо сохранить. Он хранит максимум 255 символов. Строки фиксированного размера.

Числовые типы данных

Они включают в себя следующее:

Числовые типы данных Описание
бит Очень маленькое целое значение, эквивалентное tinyint(1). Значения со знаком находятся в диапазоне от -128 до 127. Значения без знака находятся в диапазоне от 0 до 255.
интервал (м) Стандартное целочисленное значение. Значения со знаком находятся в диапазоне от -2147483648 до 2147483647. Значения без знака находятся в диапазоне от 0 до 4294967295.
плавать(м, д) Число с плавающей запятой одинарной точности.
двойной (м, д) Число с плавающей запятой двойной точности.
плавающий(п) Число с плавающей запятой.

Типы данных даты/времени

К ним относятся следующие:

Тип данных даты/времени Описание
Время Отображается в формате «гггг-мм-дд». Значения находятся в диапазоне от «1000-01-01» до «9999-12-31».
Datetime Отображается в формате «гггг-мм-дд чч:мм:сс». Значения находятся в диапазоне от «1000-01-01 00:00:00» до «9999-12-31 23:59:59».
временная метка (м) Отображается в формате «гггг-мм-дд чч:мм:сс». Значения находятся в диапазоне от '1970-01-01 00:00:01' UTC до '2038-01-19 03:14:07' UTC.
Время Отображается в формате «чч:мм:сс». Значения находятся в диапазоне от «-838:59:59» до «838:59:59».

Типы данных больших объектов (LOB)

Они включают в себя следующее:

Тип данных большого объекта Описание
крошечная капля Его максимальный размер составляет 255 байт.
капля (размер) Максимальный размер составляет 65,535 XNUMX байт.
средний блоб Его максимальный размер составляет 16,777,215 байт.
длинный текст Максимальный размер занимает 4 ГБ.

Создайте базу данных и таблицы

Чтобы создать новую базу данных в MariaDB, у вас должны быть особые привилегии, которые предоставляются только пользователю root и администраторам.

Чтобы создать новую базу данных, вам следует использовать команду CREATE DATABASE, которая имеет следующий синтаксис:

CREATE DATABASE DatabaseName;

В этом случае вам необходимо создать базу данных и дать ей имя Demo.

Запустите MariaDB Откройте командную строку и войдите в систему как пользователь root, введя следующую команду:

mysql -u root -p

Введите пароль root и нажмите клавишу возврата. Вы войдете в систему.

Теперь выполните следующую команду:

CREATE DATABASE Demo;

Создайте базу данных и таблицы в MariaDB

Затем вы создали базу данных с именем Demo. Вам будет полезно убедиться, была ли база данных создана успешно или нет. Вам нужно только показать список доступных баз данных, выполнив следующую команду:

SHOW DATABASES;

Создайте базу данных и таблицы в MariaDB

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

MariaDB Выбрать базу данных

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

Для выбора базы данных следует использовать команду USE. Он принимает синтаксис, приведенный ниже:

USE database_name;

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

USE Demo;

Создайте базу данных и таблицы в MariaDB

На изображении выше показано, что MariaDB Командная строка изменилась с «Нет» на имя выбранной базы данных.

Теперь вы можете создавать таблицы в демонстрационной базе данных.

MariaDB – Создать таблицу

Чтобы иметь возможность создать таблицу, вы должны выбрать базу данных. Таблицу можно создать с помощью оператора CREATE TABLE. Вот синтаксис команды:

CREATE TABLE tableName (columnName columnType);

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

Мы создадим две таблицы в демонстрационной базе данных: таблицы «Книга» и «Цены». В каждой таблице будет два столбца.

Начнем с создания таблицы Book с двумя столбцами: идентификатором и именем. Выполните следующую команду:

CREATE TABLE Book(  
id INT NOT NULL AUTO_INCREMENT,  
name VARCHAR(100) NOT NULL,  
PRIMARY KEY (id));  

Создайте базу данных и таблицы в MariaDB

Ограничение PRIMARY KEY использовалось для установки столбца id в качестве первичного ключа таблицы. Свойство AUTO_INCREMENT автоматически увеличивает значения столбца id на 1 для каждой новой записи, вставленной в таблицу. Все столбцы не допускают нулевых значений.

Теперь создайте вторую таблицу, таблицу цен:

CREATE TABLE Price(  
id INT NOT NULL AUTO_INCREMENT,  
price float NOT NULL,  
PRIMARY KEY (id));  

Создайте базу данных и таблицы в MariaDB

Столбец id установлен в качестве первичного ключа таблицы.

Показ таблиц

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

SHOW TABLES;

Создайте базу данных и таблицы в MariaDB

На снимке экрана выше показано, что две таблицы были успешно созданы в демонстрационной базе данных.

Отображение структуры таблицы

Чтобы просмотреть структуру любой конкретной таблицы, вы можете использовать команду DESCRIBE, обычно называемую DESC. Он принимает следующий синтаксис:

DESC TableName;

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

DESC Book;

Создайте базу данных и таблицы в MariaDB

Таблица имеет два столбца. Чтобы увидеть структуру таблицы цен, вы можете запустить следующую команду:

DESC Price;

Создайте базу данных и таблицы в MariaDB

CRUD и пункты

ВСТАВИТЬ

Чтобы вставить данные в MariaDB таблице, вам следует использовать оператор INSERT INTO. Эта команда использует синтаксис, приведенный ниже:

INSERT INTO tableName
(column_1, column_2, ... )  
VALUES  
(value1, value2, ... ),  
(value1, value2, ... ),  
...;   

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

Вставим запись в таблицу Book:

INSERT INTO book  
(id, name)  
VALUES(1, 'MariaDB Book');  

CRUD и пункты-INSERT

Вы вставили в таблицу одну запись. Вставьте запись в таблицу цен:

INSERT INTO price
(id, price)  
VALUES(1, 200);  

CRUD и пункты-INSERT

Запись создана.

ВЫБОР

Оператор SELECT помогает нам просмотреть или увидеть содержимое таблицы базы данных. Например, чтобы просмотреть содержимое таблицы Book, вам необходимо выполнить следующую команду:

SELECT * from book;

CRUD и пункты-INSERT

Теперь просмотрите содержимое таблицы цен:

SELECT * from price;

CRUD и пункты-INSERT

Вставка нескольких записей

Мы можем вставить несколько записей в один MariaDB table на ходу. Чтобы продемонстрировать это, запустите следующий пример:

INSERT INTO book
(id, name)  
VALUES  
(2,'MariaDB Book2'),  
(3,'MariaDB Book3'),  
(4,'MariaDB Book4'),  
(5,'MariaDB Book5');

Вставка нескольких записей

Вы можете запросить таблицу, чтобы проверить, были ли записи успешно вставлены:

SELECT * FROM book;

Вставка нескольких записей

Записи были успешно вставлены. Вставьте несколько записей в таблицу цен, выполнив этот пример:

INSERT INTO price 
(id, price)  
VALUES  
(2, 250),  
(3, 220),  
(4, 190),  
(5, 300); 

Вставка нескольких записей

Проверим, успешно ли созданы записи:

SELECT * FROM price;

Вставка нескольких записей

ОБНОВЛЕНИЕ ПО

Команда UPDATE помогает нам изменить или модифицировать записи, которые уже были вставлены в таблицу. Вы можете объединить его с предложением WHERE, чтобы указать запись, которую необходимо обновить. Вот синтаксис:

UPDATE tableName SET field=newValue, field2=newValue2,...  
[WHERE ...]  

Команду UPDATE также можно комбинировать с такими предложениями, как SET, WHERE, LIMIT и ORDER BY. Вы увидите это вскоре:

Рассмотрим таблицу Price со следующими записями:

CRUD и пункты-ОБНОВЛЕНИЕ

Давайте изменим цену книги с идентификатором 1 с 200 на 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD и пункты-ОБНОВЛЕНИЕ

Команда выполнена успешно. Теперь вы можете запросить таблицу, чтобы узнать, произошло ли изменение:

CRUD и пункты-ОБНОВЛЕНИЕ

На приведенном выше снимке экрана видно, что изменение было реализовано. Рассмотрим таблицу Book со следующими записями:

CRUD и пункты-ОБНОВЛЕНИЕ

Давайте изменим название книги Book на MariaDB Книга1. Обратите внимание, что идентификатор книги равен 1. Вот команда для этого:

UPDATE book
SET name = “MariaDB Book1”
WHERE id = 1;

CRUD и пункты-ОБНОВЛЕНИЕ

Проверьте, реализовано ли изменение:

CRUD и пункты-ОБНОВЛЕНИЕ

На снимке экрана выше показано, что изменение было успешно реализовано.

В приведенных выше примерах мы меняли только один столбец за раз. Однако мы можем изменить несколько столбцов одновременно. Продемонстрируем это на примере.

Воспользуемся таблицей цен со следующими данными:

CRUD и пункты-ОБНОВЛЕНИЕ

Давайте изменим идентификатор и цену книги на идентификатор 5. Мы изменим ее идентификатор на 6, а цену на 6. Выполните следующую команду:

UPDATE price
SET id = 6,
price = 280
WHERE id = 5;

CRUD и пункты-ОБНОВЛЕНИЕ

Теперь запросите таблицу, чтобы проверить, было ли изменение успешно внесено:

CRUD и пункты-ОБНОВЛЕНИЕ

Изменение было выполнено успешно.

Удалить

Мы используем команду DELETE, когда нам нужно удалить одну или несколько записей из таблицы. Вот синтаксис команды:

DELETE FROM tableName  
[WHERE condition(s)]  
[ORDER BY exp [ ASC | DESC ]]  
[LIMIT numberRows];   

Рассмотрим таблицу цен со следующими записями:

CRUD и пункты-DELETE

Нам нужно удалить последнюю запись из таблицы. У него идентификатор 6 и цена 280. Удалим запись:

DELETE FROM price
WHERE id = 6;   

CRUD и пункты-DELETE

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

CRUD и пункты-DELETE

Вывод показывает, что запись была успешно удалена.

где

Предложение WHERE помогает нам указать точное место, где нам нужно внести изменения. Он используется вместе с такими операторами, как INSERT, SELECT, UPDATE и DELETE. Рассмотрим таблицу цен со следующими данными:

CRUD и пункты-где

Предположим, нам нужно просмотреть записи, в которых цена меньше 250. Мы можем выполнить следующую команду:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD и пункты-где

Все записи, в которых цена ниже 250, возвращены.

Предложение WHERE можно комбинировать с оператором AND. Предположим, нам нужно просмотреть все записи в таблице цен, где цена ниже 250, а идентификатор выше 3. Мы можем запустить следующую команду:

SELECT *  
FROM price  
WHERE id > 3  
AND price < 250;   

CRUD и пункты-где

Возвращена только одна запись. Причина в том, что он должен соответствовать всем указанным условиям, то есть id выше 3 и цена ниже 250. Если какое-либо из этих условий нарушено, то запись не будет возвращена.

Это предложение также можно комбинировать с командой OR. Давайте заменим «И» в нашей предыдущей команде на «ИЛИ» и посмотрим, какой результат мы получим:

SELECT *  
FROM price 
WHERE id > 3  
OR price < 250;   

CRUD и пункты-где

Теперь мы получаем 2 рекорда, а не 1. Это связано с тем, что для квалификации необходимо соответствие только одному из указанных условий.

Подобно

Это предложение используется для указания шаблона данных при доступе к данным таблицы, в которых необходимо точное совпадение. Его можно комбинировать с операторами INSERT, UPDATE, SELECT и DELETE.

Вам следует передать в предложение шаблон данных, который вы ищете, и оно вернет либо true, либо false. Вот подстановочные знаки, которые можно использовать вместе с предложением:

  • %: для соответствия 0 или более символов.
  • _: для сопоставления одного символа.

Вот синтаксис предложения LIKE:

SELECT field_1, field_2,... FROM tableName1, tableName2,...  
WHERE fieldName LIKE condition;

Давайте продемонстрируем, как использовать предложение с подстановочным знаком %. Воспользуемся таблицей Book со следующими записями:

CRUD и пункты-где

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

SELECT name  
FROM book  
WHERE name LIKE 'M%';  

CRUD и пункты-где

Все записи возвращены, поскольку их имена начинаются с буквы М. Чтобы просмотреть все имена, оканчивающиеся на 4, можно выполнить следующую команду:

SELECT name  
FROM book  
WHERE name LIKE '%4';  

CRUD и пункты-где

Было возвращено только одно имя, поскольку только оно соответствует условию.

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

SELECT name  
FROM book  
WHERE name LIKE '%DB%';  

CRUD и пункты-где

Помимо подстановочного знака %, предложение LIKE можно использовать вместе с подстановочным знаком _. Это подстановочный знак подчеркивания, и он будет искать только один символ.

Давайте поработаем с таблицей Price со следующими записями:

CRUD и пункты-где

Давайте проверим запись, в которой цена равна 1_0. Мы запускаем следующую команду:

SELECT *  
FROM price
WHERE price LIKE '1_0';  

CRUD и пункты-где

Он вернул запись, в которой цена равна 190. Мы также можем попробовать другой шаблон:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD и пункты-где

Мы можем использовать предложение LIKE вместе с оператором NOT. Это вернет все записи, которые не соответствуют указанному шаблону. Например:

Воспользуемся таблицей цен со следующими записями:

CRUD и пункты-где

Найдем все записи, где цена не начинается с 2:

SELECT *  
FROM price  
WHERE price NOT LIKE '2%';  

CRUD и пункты-где

Только одна запись не соответствует указанному шаблону.

Сортировать по

Этот пункт помогает нам сортировать наши записи в порядке возрастания или убывания. Мы используем его с оператором SELECT, как показано ниже:

SELECT expression(s)  
FROM tables  
[WHERE condition(s)]  
ORDER BY exp [ ASC | DESC ];   

Мы можем использовать это предложение без добавления частей ASC или DESC. Например:

Мы будем использовать таблицу цен со следующими записями:

CRUD и пункты-где

Выполните следующую команду для таблицы:

SELECT * FROM price 
WHERE price LIKE '2%.'
ORDER BY price;   

CRUD и пункты-где

В приведенной выше команде мы отсортировали по цене. Записи упорядочены по возрастанию цен. Это означает, что если мы не указываем порядок, сортировка по умолчанию выполняется в порядке возрастания.

Давайте запустим предложение с опцией DESC:

SELECT * FROM price
WHERE price LIKE '2%'  
ORDER BY price DESC;   

CRUD и пункты-где

Записи отсортированы по цене в порядке убывания, как мы указали.

Давайте используем предложение ORDER BY вместе с атрибутом ASC:

SELECT * FROM price 
WHERE price LIKE '2%.'  
ORDER BY price ASC;   

CRUD и пункты-где

Записи упорядочены, но цены расположены в порядке возрастания. Это похоже на использование предложения ORDER BY без атрибутов ASC или DESC.

DISTINCT

Это предложение помогает нам избавиться от дубликатов при выборе записей из таблицы. Это означает, что это помогает нам получать уникальные записи. Его синтаксис приведен ниже:

SELECT DISTINCT expression(s)  
FROM tableName  
[WHERE condition(s)];   

Чтобы продемонстрировать это, мы будем использовать таблицу цен со следующими данными:

CRUD и пункты-DISTINCT

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

SELECT price FROM Price;

CRUD и пункты-DISTINCT

У нас есть две записи с ценой 250, создаём дубликат. Нам нужно иметь только уникальные записи. Мы можем отфильтровать их, используя предложение DISTINCT, как показано ниже:

SELECT DISTINCT price FROM Price;

CRUD и пункты-DISTINCT

Теперь у нас нет дубликатов в приведенном выше выводе.

от

Предложение FROM используется для выборки данных из таблицы базы данных. Это также может помочь при объединении таблиц. Вот синтаксис команды:

SELECT columnNames FROM tableName; 

Чтобы просмотреть содержимое таблицы book, выполните следующую команду:

SELECT * FROM price;

CRUD и пункты-From

Это предложение может помочь вам получить только один столбец из таблицы базы данных. Например:

SELECT price FROM Price;

CRUD и пункты-From

Расширенные задачи

Хранимая процедура

Процедура – ​​это MariaDB программа, в которую можно передавать параметры. Процедура не возвращает значений. Для создания процедуры мы используем команду CREATE PROCEDURE.

Чтобы продемонстрировать, как создавать и вызывать процедуру, мы создадим процедуру с именем myProcedure(), которая поможет нам выбрать столбец имени из таблицы book. Вот процедура:

DELIMITER $
    CREATE PROCEDURE myProcedure()
        BEGIN
            SELECT name FROM book;
        END;
;

Расширенные задачи — хранимая процедура

Процедура создана. Мы просто включили оператор SELECT в предложения BEGIN и END процедуры.

Теперь мы можем вызвать процедуру по ее имени, как показано ниже:

CALL myProcedure();

Расширенные задачи — хранимая процедура

При вызове процедура возвращает столбец имени таблицы book.

Мы можем создать процедуру, которая принимает параметр. Например, нам нужно выбрать название книги и отфильтровать ее по идентификатору книги. Для этого мы можем создать следующую процедуру:

DELIMITER $
    CREATE PROCEDURE myProcedure2(book_id int)
        BEGIN
            SELECT name FROM book WHERE id = book_id;
        END;
;

Расширенные задачи — хранимая процедура

Выше мы создали процедуру с именем myProcedure2(). Эта процедура принимает один целочисленный параметр с именем book_id, который является идентификатором книги, имя которой нам нужно увидеть. Чтобы увидеть название книги с идентификатором 3, мы можем вызвать процедуру следующим образом:

CALL myProcedure2(3);

Расширенные задачи — хранимая процедура

Функция

В отличие от процедур, мы должны передавать параметры функциям, а функция должна возвращать значение. Чтобы создать функцию в MariaDB, мы используем оператор CREATE FUNCTION. Оператор имеет следующий синтаксис:

CREATE 
[ DEFINER = { CURRENT-USER | username } ] 
FUNCTION function-name [(parameter datatype [, parameter datatype]) ]
RETURNS datatype [LANGUAGE SQL
                        | DETERMINISTIC
                        | NOT DETERMINISTIC
                        | {CONTAINS SQL 
                          | NO SQL
                          | READS SQL DATA
                          | MODIFIES SQL DATA}
                        | SQL SECURITY {DEFINER | INVOKER}
                        | COMMENT 'comment'

BEGIN

   declaration-section

   executable-section

END;

Вышеуказанные параметры описаны ниже:

Параметр Описание
Предложение DEFINER Этот параметр является необязательным. Если вы не укажете это, определяющим станет пользователь, создавший функцию. Если необходимо указать другой определитель, включите предложение DEFINER, в котором имя_пользователя будет определителем функции.
имя_функции Имя, которое должно быть присвоено этой функции в MariaDB.
параметр Параметр(ы), передаваемый функции. При создании функции все параметры рассматриваются как Входящие параметры (а не параметры OUT/INOUT).
тип_данных return Тип данных возвращаемого значения функции.
ЯЗЫК SQL Это влияет на мобильность, но не на функциональность.
ДЕТЕРМИНИСТИЧЕСКИЙ Функция вернет один результат только при наличии нескольких параметров.
НЕ ДЕТЕРМИНИСТИЧЕСКИЙ Функция может возвращать другой результат, если ей задано несколько параметров.
СОДЕРЖИТ SQL информирует MariaDB что эта функция содержит SQL. База данных не будет проверять, правда ли это.
НЕТ SQL Это предложение не используется и не влияет на вашу функцию.
ЧИТАЕТ ДАННЫЕ SQL Сообщает MariaDB что эта функция будет использовать операторы SELECT для чтения данных, но не будет изменять данные.
ИЗМЕНЯЕТ ДАННЫЕ SQL Сообщает MariaDB что эта функция будет использовать INSERT, DELETE, UPDATE и другие DDL операторы для изменения данных SQL.
раздел декларации Здесь следует объявить локальные переменные.
исполняемый раздел Сюда следует добавить код функции.

Вот пример MariaDB функция:

DELIMITER //

CREATE FUNCTION sumFunc (x INT )
RETURNS INT DETERMINISTIC

BEGIN

   DECLARE sum INT;
   SET sum = 0;
   label1: WHILE sum <= 3000 DO
   SET sum = sum + x;
   END WHILE label1;
   RETURN sum;
END; //
DELIMITER ;

Функция в MariaDB

Затем мы можем вызвать вышеуказанную функцию следующим образом:

select sumFunc(1000);

Команда вернет следующее:

Функция в MariaDB

Как только вы закончите работу с функцией, будет полезно удалить ее. Это легко, поскольку вам нужно всего лишь вызвать оператор DROP FUNCTION, который имеет следующий синтаксис:

DROP FUNCTION function_name;

Например, чтобы удалить функцию с именем myFunc, мы можем выполнить следующую команду:

DROP FUNCTION myFunc;

РЕГИСТРАЦИЯ

Если вам нужно получить данные из нескольких таблиц одновременно, используйте MariaDB ПРИСОЕДИНЯЕТСЯ. Это означает, что РЕГИСТРАЦИЯ работает на двух или более таблицах. Следующие три типа JOINS поддерживаются в MariaDB:

  • ВНУТРЕННЕЕ/ПРОСТОЕ СОЕДИНЕНИЕ
  • ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ/ЛЕВОЕ СОЕДИНЕНИЕ
  • ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ/ПРАВОЕ СОЕДИНЕНИЕ

Давайте обсудим их по отдельности:

INNER JOIN

Внутреннее соединение возвращает все строки из таблиц, в которых условие соединения истинно. Его синтаксис следующий:

SELECT columns  
FROM table-1   
INNER JOIN table-2  
ON table-1.column = table-2.column;  

Например:

Мы будем использовать наши две таблицы, книги и книгу.

Таблица book содержит следующие данные:

INNER JOIN

Таблица цен содержит следующие данные:

INNER JOIN

Цель состоит в том, чтобы объединить столбец имени из таблицы «Книги» и столбец «Цены» из таблицы «Цены» в одну таблицу. Это возможно с помощью внутреннего соединения, как показано ниже:

SELECT book.name, price.price 
FROM book   
INNER JOIN price 
ON book.id = price.id;   

Команда возвращает следующее:

INNER JOIN

ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Это соединение возвращает все строки из левой таблицы и только строки, в которых условие соединения истинно, из другой таблицы. Его синтаксис следующий:

SELECT columns  
FROM table-1  
LEFT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

Ключевое слово OUTER заключено в квадратные скобки, поскольку оно не является обязательным.

Например:

SELECT book.name, price.price 
FROM book   
LEFT JOIN price 
ON book.id = price.id;   

Команда возвращает следующее:

ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Последняя запись в приведенной выше таблице не имеет соответствующего значения слева. Вот почему оно было заменено на NULL.

ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Это соединение возвращает все строки из правой таблицы и только строки, в которых условие соединения истинно, из другой таблицы. Его синтаксис следующий:

SELECT columns  
FROM table-1  
RIGHT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

Ключевое слово OUTER заключено в квадратные скобки, поскольку оно не является обязательным.

Например:

SELECT book.name, price.price 
FROM book   
RIGHT JOIN price
ON book.id = price.id;   

Команда возвращает следующее:

ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Причина в том, что все строки в правой таблице совпадают со строками в другой таблице. Если бы некоторые строки не совпадали, в первом столбце были бы NULL.