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

Что такое MariaDB?

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

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

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

  • It operates под лицензиями GPL, BSD или LGPL.
  • MariaDB поддерживает популярный и стандартный язык запросов.
  • Он поставляется со многими механизмами хранения, в том числе высокопроизводительными, которые можно интегрировать с другими системами управления реляционными базами данных.
  • Он обеспечивает Галеру cluster технологии.
  • MariaDB поддерживает PHP, популярный язык веб-разработки.
  • MariaDB может работать на разных operating-систем и поддерживает множество языков программирования.
  • 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сообщениеunity edition позволяет подключать статическое количество потоков. MySQLКорпоративный план включает в себя возможности потоков.
Новые функции/расширения MariaDB поставляется с новыми функциями и расширениями, включая операторы JSON, With и KILL. Новый MariaDB функции не предусмотрены MySQL.
Недостающие особенности MariaDB отсутствуют некоторые функции, предоставляемые MySQL корпоративное издание. Чтобы решить эту проблему, он предлагает альтернативные плагины с открытым исходным кодом. Следовательно, MariaDB пользователи могут пользоваться теми же функциями, что и MySQL Пользователи Enterprise Edition. Корпоративное издание MySQL использует собственный код. Только пользователи MySQL Enterprise Edition имеет к этому доступ.

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

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

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

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

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

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

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

Установка MariaDB

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

Установка MariaDB

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

Установка MariaDB

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

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

Установка MariaDB

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

Установка MariaDB

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

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

Установка MariaDB

Шаг 10) Показан индикатор выполнения
Индикатор выполнения шоwing будет показан ход установки:

Установка MariaDB

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

Установка MariaDB

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

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

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

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

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

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

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

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

MySQL -u root -p

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

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

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

Типы данных

MariaDB поддерживает фоллоwing типы данных:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CREATE DATABASE DatabaseName;

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

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

mysql -u root -p

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

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

CREATE DATABASE Demo;

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

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

SHOW DATABASES;

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

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

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

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

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

USE database_name;

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

USE Demo;

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

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

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

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

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

CREATE TABLE tableName (columnName columnType);

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

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

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

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 установлен в качестве первичного ключа таблицы.

Showing таблицы

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

SHOW TABLES;

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

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

Showing Структура таблицы

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

DESC TableName;

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

DESC Book;

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

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

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, необходимо запустить следующую команду:wing команда:

SELECT * from book;

CRUD и пункты-INSERT

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

SELECT * from price;

CRUD и пункты-INSERT

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

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

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 со следующимwing записей:

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

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

UPDATE price 
SET price = 250
WHERE id = 1;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CRUD и пункты-DELETE

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

DELETE FROM price
WHERE id = 6;   

CRUD и пункты-DELETE

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

CRUD и пункты-DELETE

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

где

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

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

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

SELECT *   
FROM price 
WHERE price < 250;  

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

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

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

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 со следующимwing записей:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

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

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

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

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. Например:

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

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

Запустите следующееwing команда против стола:

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

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

CRUD и пункты-DISTINCT

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

SELECT price FROM Price;

CRUD и пункты-DISTINCT

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

SELECT DISTINCT price FROM Price;

CRUD и пункты-DISTINCT

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

от

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

SELECT columnNames FROM tableName; 

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

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.

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

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. Заявление принимает следующееwing синтаксис:

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

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

Функция в MariaDB

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

DROP FUNCTION function_name;

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

DROP FUNCTION myFunc;

РЕГИСТРАЦИЯ

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

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

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

INNER JOIN

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

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

Например:

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

На книжном столе есть следующее:wing данные:

INNER JOIN

Таблица цен имеет следующееwing данные:

INNER JOIN

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

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

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

INNER JOIN

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

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

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

Ключевое слово OUTER помещено в квадрат. brackets потому что это необязательно.

Например:

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

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

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

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

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

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

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

Ключевое слово OUTER помещено в квадрат. brackets потому что это необязательно.

Например:

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

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

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

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