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, реплікацію можна зробити безпечніше та швидше. Оновлення також можна виконувати вдвічі швидше порівняно з традиційним 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 символів. Рядки фіксованої довжини.
varchar (розмір) Розмір означає кількість символів, які потрібно зберегти. Він зберігає максимум 255 символів. Рядки змінної довжини.
текст (розмір) Розмір означає кількість символів, які потрібно зберегти. Він зберігає максимум 255 символів. Рядки фіксованої довжини.
двійковий (розмір) Розмір означає кількість символів, які потрібно зберегти. Він зберігає максимум 255 символів. Рядки фіксованого розміру.

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

Вони включають наступне:

Числові типи даних Опис
біт Дуже маленьке ціле число, еквівалентне tinyint(1). Діапазон значень зі знаком – від -128 до 127. Значення без знака – від 0 до 255.
int(m) Стандартне ціле число. Діапазон значень зі знаком – від -2147483648 до 2147483647. Значення без знака – від 0 до 4294967295.
float(m, d) Число з плаваючою комою з одинарною точністю.
подвійний (м, д) Число з плаваючою комою з подвійною точністю.
float(p) Число з плаваючою комою.

Типи даних дати/часу

Сюди входять такі:

Дата/час Тип даних Опис
Дата Відображається у формі "рррр-мм-дд". Діапазон значень від «1000-01-01» до «9999-12-31».
Дата, час Відображається у формі «рррр-мм-дд гг:хх:сс». Діапазон значень від «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.
Time Відображається у формі «гг:хх:сс». Діапазон значень між «-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;

Вам необхідно використовувати базу даних Demo. Ви можете вибрати його, виконавши таку команду:

USE Demo;

Створіть базу даних і таблиці в MariaDB

На зображенні вище показано, що MariaDB Командний рядок змінився з none на назву вибраної бази даних.

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

MariaDB – Створити таблицю

Щоб ви могли створити таблицю, ви повинні вибрати базу даних. Таблицю можна створити за допомогою оператора CREATE TABLE. Ось синтаксис команди:

CREATE TABLE tableName (columnName columnType);

Ви можете встановити один зі стовпців як первинний ключ. Цей стовпець не повинен допускати нульових значень.

Ми створимо дві таблиці в базі даних Demo, таблиці Book і Price. Кожна таблиця матиме два стовпці.

Почнемо зі створення таблиці Book із двома стовпцями: id та name. Виконайте таку команду:

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 і пункти

INSERT

Щоб вставити дані в a 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 і Clauses-INSERT

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

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

CRUD і Clauses-INSERT

Запис створено.

ВИБІР

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

SELECT * from book;

CRUD і Clauses-INSERT

Тепер перегляньте вміст таблиці цін:

SELECT * from price;

CRUD і Clauses-INSERT

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

Ми можемо вставити кілька записів у a MariaDB стіл на ходу. Щоб продемонструвати це, запустіть такий приклад:

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 і пропозиції - ОНОВЛЕННЯ

Змінимо ціну книги з id 1 з 200 на 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD і пропозиції - ОНОВЛЕННЯ

Команда виконана успішно. Тепер ви можете запитати таблицю, щоб дізнатися, чи відбулася зміна:

CRUD і пропозиції - ОНОВЛЕННЯ

Наведений вище знімок екрана показує, що зміни внесено. Розглянемо таблицю Книги з такими записами:

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 і Clauses-Where

Припустимо, нам потрібно переглянути записи, у яких ціна менше 250. Ми можемо виконати таку команду:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD і Clauses-Where

Всі записи, в яких ціна нижче 250, повернуто.

Речення WHERE можна поєднати з оператором AND. Припустімо, нам потрібно переглянути всі записи в таблиці цін, де ціна нижча за 250, а ідентифікатор — вище 3. Ми можемо запустити таку команду:

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

CRUD і Clauses-Where

Повернено лише один запис. Причина полягає в тому, що він має відповідати всім зазначеним умовам, тобто ідентифікатор вище 3 і ціна нижче 250. Якщо будь-яка з цих умов буде порушена, запис не буде повернено.

Речення також можна комбінувати з командою OR. Давайте замінимо AND у нашій попередній команді на OR і подивимося, який результат ми отримаємо:

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

CRUD і Clauses-Where

Тепер ми отримуємо 2 записи, а не 1. Це пояснюється тим, що для кваліфікаційного запису він має відповідати лише одній із зазначених умов.

Люблю

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

Ви повинні передати шаблон даних, які ви шукаєте, у пункт, і він поверне або true, або false. Ось символи узагальнення, які можна використовувати разом із пропозицією:

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

Ось синтаксис пропозиції LIKE:

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

Давайте продемонструємо, як використовувати речення із символом підстановки %. Скористаємося таблицею Book з такими записами:

CRUD і Clauses-Where

Нам потрібно переглянути всі записи, ім’я яких починається з M. Ми можемо виконати таку команду:

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

CRUD і Clauses-Where

Усі записи повернено, оскільки їхні назви починаються з літери M. Щоб побачити всі назви, які закінчуються на 4, ви можете виконати таку команду:

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

CRUD і Clauses-Where

Повернуто лише одне ім’я, оскільки воно єдине відповідає умові.

Ми також можемо обвести шаблон пошуку символом підстановки:

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

CRUD і Clauses-Where

Крім символу підстановки %, речення LIKE можна використовувати разом із знаком підстановки _. Це символ підкреслення, і він шукатиме лише один символ.

Попрацюємо з таблицею Price з такими записами:

CRUD і Clauses-Where

Давайте перевіримо запис, у якому ціна схожа на 1_0. Виконуємо таку команду:

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

CRUD і Clauses-Where

Він повернув запис, у якому ціна становить 190. Ми також можемо спробувати інший шаблон:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD і Clauses-Where

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

Скористаємося таблицею цін із такими записами:

CRUD і Clauses-Where

Знайдемо всі записи, у яких ціна не починається з 2:

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

CRUD і Clauses-Where

Лише один запис не відповідає вказаному шаблону.

Сортувати за

Цей пункт допомагає нам сортувати наші записи в порядку зростання або спадання. Ми використовуємо його з оператором SELECT, як показано нижче:

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

Ми можемо використовувати це положення без додавання частини ASC або DESC. Наприклад:

Ми будемо використовувати таблицю цін із такими записами:

CRUD і Clauses-Where

Виконайте таку команду для таблиці:

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

CRUD і Clauses-Where

У наведеній вище команді ми впорядкували за ціною. Записи впорядковано з цінами в порядку зростання. Це означає, що якщо ми не вказуємо порядок, за замовчуванням сортування виконується в порядку зростання.

Запустимо речення з опцією DESC:

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

CRUD і Clauses-Where

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

Давайте використаємо речення ORDER BY разом з атрибутом ASC:

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

CRUD і Clauses-Where

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

DISTINCT

Цей пункт допомагає нам позбутися дублікатів під час вибору записів із таблиці. Це означає, що це допомагає нам отримувати унікальні записи. Його синтаксис наведено нижче:

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

Щоб продемонструвати це, ми використаємо таблицю цін із такими даними:

CRUD і Clauses-DISTINCT

Коли ми вибираємо стовпець ціни з таблиці, ми отримуємо такий результат:

SELECT price FROM Price;

CRUD і Clauses-DISTINCT

У нас є два записи з ціною 250, створюючи дублікат. Нам потрібні лише унікальні записи. Ми можемо відфільтрувати їх за допомогою пропозиції DISTINCT, як показано нижче:

SELECT DISTINCT price FROM Price;

CRUD і Clauses-DISTINCT

Тепер ми не маємо дублікатів у наведеному вище виводі.

From

Речення FROM, яке використовується для отримання даних із таблиці бази даних. Це також може допомогти при з’єднанні таблиць. Ось синтаксис команди:

SELECT columnNames FROM tableName; 

Щоб переглянути вміст таблиці книги, виконайте таку команду:

SELECT * FROM price;

CRUD і Clauses-From

Речення може допомогти вам отримати лише один стовпець із таблиці бази даних. Наприклад:

SELECT price FROM Price;

CRUD і Clauses-From

Складні завдання

Збережена процедура

Процедура - це a MariaDB програма, якій можна передавати параметри. Процедура не повертає значення. Для створення процедури використовується команда CREATE PROCEDURE.

Щоб продемонструвати, як створити та викликати процедуру, ми створимо процедуру під назвою myProcedure(), яка допоможе нам вибрати стовпець імені з таблиці книги. Ось процедура:

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

Розширені завдання - збережена процедура

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

Тепер ми можемо назвати процедуру за її назвою, як показано нижче:

CALL myProcedure();

Розширені завдання - збережена процедура

Під час виклику процедура повертає стовпець імені таблиці книги.

Ми можемо створити процедуру, яка приймає параметр. Наприклад, нам потрібно вибрати назву книги та відфільтрувати її за ідентифікатором книги. Для цього ми можемо створити таку процедуру:

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, у якій user_name буде визначником функції.
ім'я_функції Ім'я, яке потрібно призначити цій функції в MariaDB.
параметр Параметр(и), переданий у функцію. Під час створення функції всі параметри обробляються як Параметри IN (а не параметри OUT/INOUT).
return_datatype Тип даних значення, що повертається функцією.
МОВА 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 ПРИЄДНАЄТЬСЯ. Це означає, що a РЕЄСТРАЦІЯ працює на двох і більше столах. Наступні три типи JOIN підтримуються MariaDB:

  • ВНУТРІШНЄ/ПРОСТЕ З'ЄДНАННЯ
  • LEFT OUTER JOIN/LEFT JOIN
  • ПРАВЕ ЗОВНІШНЄ З'ЄДНАННЯ/ПРАВЕ З'ЄДНАННЯ

Давайте обговоримо їх по черзі:

INNER JOIN

Внутрішнє об’єднання повертає всі рядки з таблиць, у яких умова об’єднання виконується. Його синтаксис такий:

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

Наприклад:

Ми будемо використовувати наші два столи, книги та книгу.

Таблиця книги містить такі дані:

INNER JOIN

Таблиця цін містить такі дані:

INNER JOIN

Мета полягає в тому, щоб об’єднати стовпець імені з таблиці Book і стовпець ціни з таблиці Price в одну таблицю. Це можливо за допомогою внутрішнього об’єднання, як показано нижче:

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 у першому стовпці.