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Корпоративният план на 's идва с възможности за нишки.
Нови функции/разширения 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 Command Prompt.

MariaDB Command Prompt

Стъпка 3) - MariaDB ще се стартира командния ред. Сега е време да влезете. Трябва да влезете като root потребител и паролата, която сте задали по време на инсталацията на MariaDB. Въведете следната команда в командния ред:

MySQL -u root -p

Стъпка 4) Въведете паролата и натиснете клавиша за връщане. Трябва да сте влезли, както е показано по-долу:

MariaDB Command Prompt

Вече сте влезли MariaDB.

Типове данни

MariaDB поддържа следните типове данни:

  • Низови типове данни
  • Числови типове данни
  • Типове данни за дата/час
  • Типове данни за големи обекти

Низови типове данни

Те включват следното:

Тип данни за низ Descriptйон
символ (размер) Размерът показва броя на символите, които трябва да бъдат съхранени. Той съхранява максимум 255 знака. Стрингове с фиксирана дължина.
varchar (размер) Размерът показва броя на символите, които трябва да бъдат съхранени. Той съхранява максимум 255 знака. Стрингове с променлива дължина.
текст (размер) Размерът показва броя на символите, които трябва да бъдат съхранени. Той съхранява максимум 255 знака. Стрингове с фиксирана дължина.
двоичен (размер) Размерът показва броя на символите, които трябва да бъдат съхранени. Той съхранява максимум 255 знака. Стрингове с фиксиран размер.

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

Те включват следното:

Числови типове данни Descriptйон
малко Много малка целочислена стойност, еквивалентна на tinyint(1). Стойностите със знак варират между -128 и 127. Стойностите без знак варират между 0 и 255.
int(m) Стандартна целочислена стойност. Стойностите със знак варират между -2147483648 и 2147483647. Стойностите без знак варират между 0 и 4294967295.
float(m, d) Число с плаваща запетая с единична точност.
двойно(m,d) Число с плаваща запетая с двойна точност.
float(p) Число с плаваща запетая.

Типове данни за дата/час

Те включват следното:

Тип данни за дата/час Descriptйон
Дата Показва се във формата "гггг-мм-дд". Стойностите варират между „1000-01-01“ и „9999-12-31“.
Време за среща Показва се във формата „гггг-мм-дд чч:мм:сс“. Стойностите варират между „1000-01-01 00:00:00“ и „9999-12-31 23:59:59“.
клеймо за време (m) Показва се във формата „гггг-мм-дд чч:мм:сс“. Стойностите варират между '1970-01-01 00:00:01' utc и '2038-01-19 03:14:07' utc.
Време Показва се във формата „чч:мм:сс“. Стойностите варират между „-838:59:59“ и „838:59:59“.

Големи обектни типове данни (LOB)

Те включват следното:

Голям обект Тип данни Descriptйон
мъничко петно Максималният му размер е 255 байта.
петно ​​(размер) Взема 65,535 XNUMX байта като максимален размер.
средно петно Максималният му размер е 16,777,215 байта.
дълъг текст Отнема 4GB като максимален размер.

Създаване на база данни и таблици

За да създадете нова база данни в 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 командния ред е променен от none на името на базата данни, която е избрана.

Вече можете да продължите напред и да създавате таблици в рамките на демонстрационната база данни.

MariaDB – Създаване на таблица

За да можете да създадете таблица, трябва да сте избрали база данни. Таблицата може да бъде създадена с помощта на оператора CREATE TABLE. Ето синтаксиса на командата:

CREATE TABLE tableName (columnName columnType);

Можете да зададете една от колоните да бъде първичен ключ. Тази колона не трябва да позволява нулеви стойности.

Ще създадем две таблици в рамките на базата данни за демонстрации, таблици за книги и цени. Всяка таблица ще има две колони.

Нека започнем, като създадем таблицата 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

Екранната снимка по-горе показва, че двете таблици са създадени успешно в базата данни Demo.

Показване на структурата на таблицата

За да видите структурата на всяка конкретна таблица, можете да използвате командата 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 и клаузи-INSERT

Вмъкнали сте един запис в таблицата. Вмъкнете запис в таблицата с цените:

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

CRUD и клаузи-INSERT

Записът е създаден.

МАРКИРАЙ

Операторът SELECT ни помага да прегледаме или видим съдържанието на таблица на база данни. За да видите съдържанието на таблицата Book например, трябва да изпълните следната команда:

SELECT * from book;

CRUD и клаузи-INSERT

Сега вижте съдържанието на таблицата с цените:

SELECT * from price;

CRUD и клаузи-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 и клаузи-АКТУАЛИЗАЦИЯ

Нека променим името на книгата с име Книга на 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 и id е над 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 и клаузи-къде

Трябва да видим всички записи, в които името започва с M. Можем да изпълним следната команда:

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

CRUD и клаузи-къде

Всички записи са върнати, защото имената им започват с буквата M. За да видите всички имена, които завършват на 4, можете да изпълните следната команда:

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

CRUD и клаузи-къде

Върнато е само едно име, защото то е единственото, което отговаря на условието.

Можем също да оградим модела за търсене със заместващия знак:

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

CRUD и клаузи-къде

Освен заместващия знак %, клаузата LIKE може да се използва заедно със заместващия знак _. Това е заместващият знак за подчертаване и ще търси само един знак.

Нека работим с таблицата на цените със следните записи:

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; 

За да видите съдържанието на таблицата с книги, изпълнете следната команда:

SELECT * FROM price;

CRUD и клаузи-От

Клаузата може да ви помогне да извлечете само една колона от таблица на база данни. Например:

SELECT price FROM Price;

CRUD и клаузи-От

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

Съхранена процедура

Процедурата е а 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;

Горните параметри са описани по-долу:

Параметър Descriptйон
Клауза DEFINER Този параметър не е задължителен. Ако не го посочите, дефиниращият ще стане потребителят, създал функцията. Ако има нужда да посочите различен дефинитор, включете клаузата DEFINER, в която user_name ще бъде дефинитор на функцията.
име на функция Името, което трябва да бъде присвоено на тази функция в MariaDB.
параметър Параметърът(ите), предадени на функцията. По време на създаването на функцията всички параметри се третират като IN параметри (вместо OUT/INOUT параметри).
тип_данни за връщане Типът данни на върнатата стойност на функцията.
ЕЗИК 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 ПРИСЪЕДИНЕТЕ СЕ КЪМ работи на две или повече маси. Следните три типа JOINS се поддържат в MariaDB:

  • ВЪТРЕШНО/ОСВОБОЖДАВАНЕ
  • ЛЯВО ВЪНШНО СЪЕДИНЕНИЕ/ЛЯВО СЪЕДИНЕНИЕ
  • ДЯСНО ВЪНШНО СЪЕДИНЕНИЕ/ДЯСНО СЪЕДИНЕНИЕ

Нека ги обсъдим един по един:

ВЪВЕЖДАНЕ

Вътрешното съединение връща всички редове от таблиците, в които условието за свързване е вярно. Синтаксисът му е както следва:

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

Например:

Ще използваме нашите две маси, книги и книга.

Таблицата на книгата има следните данни:

ВЪВЕЖДАНЕ

Таблицата с цените съдържа следните данни:

ВЪВЕЖДАНЕ

Целта е колоната с имена от таблицата Book и колоната с цени от таблицата Price да се съединят в една таблица. Това е възможно с вътрешно съединение, както е показано по-долу:

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

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

ВЪВЕЖДАНЕ

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

Това обединяване връща всички редове от лявата таблица и само редове, в които условието за обединяване е вярно от другата таблица. Синтаксисът му е както следва:

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 в първата колона.