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) Щракнете върху бутона Напред
В изскачащия прозорец щракнете върху бутона Напред:
Стъпка 4) Приемете лицензионното споразумение
След това щракнете върху бутона Напред:
Стъпка 5) Изберете MariaDB Сървър
Изберете функциите, които трябва да бъдат инсталирани и щракнете върху Напред
Стъпка 6) Въведете паролата
В следващия прозорец ще трябва да промените паролата за root потребител.
- Въведете паролата и я потвърдете, като въведете отново същата парола. Ако искате да разрешите достъп от отдалечени машини, активирайте необходимото поле за отметка.
- След като сте готови, щракнете върху бутона Напред.
Стъпка 7) Въведете име и изберете номер на порт
В следващия прозорец въведете име за екземпляра, изберете номера на порта и задайте необходимия размер. Щракнете върху бутона Напред:
Стъпка 8) Кликнете върху Напред
В следващия прозорец просто щракнете върху бутона Напред.
Стъпка 9) Щракнете върху Инсталиране
Стартирайте инсталацията, като щракнете върху бутона Инсталиране.
Стъпка 10) Показана е лента за напредък
Ще се покаже лента за напредъка, показваща напредъка на инсталацията:
Стъпка 11) Кликнете върху бутона Край
След като инсталацията приключи, ще видите бутона Край. Щракнете върху бутона, за да затворите прозореца:
Стъпка 12) Поздравления!
Сега имате MariaDB инсталиран на вашия компютър.
Работа с командния ред
Сега, когато имате MariaDB инсталиран на вашия компютър, време е да го стартирате и да започнете да го използвате. Това може да стане чрез MariaDB командния ред.
Следвайте стъпките, дадени по-долу:
Стъпка 1) Щракнете върху Старт, изберете Всички програми и след това щракнете MariaDB...
Стъпка 2) Изберете MariaDB Command Prompt.
Стъпка 3) - MariaDB ще се стартира командния ред. Сега е време да влезете. Трябва да влезете като root потребител и паролата, която сте задали по време на инсталацията на MariaDB. Въведете следната команда в командния ред:
MySQL -u root -p
Стъпка 4) Въведете паролата и натиснете клавиша за връщане. Трябва да сте влезли, както е показано по-долу:
Вече сте влезли 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;
След това сте създали база данни с име Demo. Ще бъде добре за вас да потвърдите дали базата данни е създадена успешно или не. Трябва само да покажете списъка с наличните бази данни, като изпълните следната команда:
SHOW DATABASES;
Горният резултат показва, че демонстрационната база данни е част от списъка, следователно базата данни е създадена успешно.
MariaDB Изберете База данни
За да можете да използвате или работите с определена база данни, трябва да я изберете от списъка с налични бази данни. След като изберете база данни, можете да изпълнявате задачи като създаване на таблици в базата данни.
За да изберете база данни, трябва да използвате командата USE. Той приема синтаксиса, даден по-долу:
USE database_name;
Трябва да използвате демонстрационната база данни. Можете да го изберете, като изпълните следната команда:
USE Demo;
Горното изображение показва, че 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));
Ограничението PRIMARY KEY е използвано за задаване на id колоната като първичен ключ за таблицата. Свойството AUTO_INCREMENT ще увеличи стойностите на колоната id с 1 автоматично за всеки нов запис, вмъкнат в таблицата. Всички колони няма да позволяват нулеви стойности.
Сега създайте втората таблица, таблицата с цените:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
Колоната id е зададена като първичен ключ за таблицата.
Показване на таблици
Сега, след като сте създали двете таблици, ще бъде добре да разберете дали таблиците са създадени успешно или не. Можете да покажете списъка с таблици, съдържащи се в база данни, като изпълните следната команда:
SHOW TABLES;
Екранната снимка по-горе показва, че двете таблици са създадени успешно в базата данни Demo.
Показване на структурата на таблицата
За да видите структурата на всяка конкретна таблица, можете да използвате командата DESCRIBE, обикновено съкратена като DESC. Той приема следния синтаксис:
DESC TableName;
Например, за да видите структурата на таблицата с име Book, можете да изпълните следната команда;
DESC Book;
Таблицата има две колони. За да видите структурата на таблицата с цените, можете да изпълните следната команда:
DESC Price;
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');
Вмъкнали сте един запис в таблицата. Вмъкнете запис в таблицата с цените:
INSERT INTO price (id, price) VALUES(1, 200);
Записът е създаден.
МАРКИРАЙ
Операторът SELECT ни помага да прегледаме или видим съдържанието на таблица на база данни. За да видите съдържанието на таблицата Book например, трябва да изпълните следната команда:
SELECT * from book;
Сега вижте съдържанието на таблицата с цените:
SELECT * from price;
Вмъкване на множество записи
Възможно е да вмъкнем няколко записа в 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 със следните записи:
Нека променим цената на книгата с id 1 от 200 на 250:
UPDATE price SET price = 250 WHERE id = 1;
Командата се изпълни успешно. Вече можете да направите запитване към таблицата, за да видите дали е настъпила промяната:
Горната екранна снимка показва, че промяната е приложена. Помислете за таблицата Книга със следните записи:
Нека променим името на книгата с име Книга на MariaDB Книга1. Забележете, че книгата има идентификатор 1. Ето командата за това:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Проверете дали промяната е приложена:
Екранната снимка по-горе показва, че промяната е приложена успешно.
В горните примери променихме само една колона наведнъж. Въпреки това е възможно да променим няколко колони наведнъж. Нека демонстрираме това с пример.
Нека използваме таблицата с цените със следните данни:
Нека променим както идентификатора, така и цената на книгата с идентификатор 5. Ще променим нейния идентификатор на 6 и цената на 6. Изпълнете следната команда:
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Сега направете запитване към таблицата, за да проверите дали промяната е направена успешно:
Промяната е направена успешно.
Изтрий
Използваме командата DELETE, когато трябва да изтрием един или много записи от таблица. Ето синтаксиса на командата:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Разгледайте таблицата с цените със следните записи:
Трябва да изтрием последния запис от таблицата. Има идентификатор 6 и цена 280. Нека изтрием записа:
DELETE FROM price WHERE id = 6;
Командата се изпълни успешно. Нека направим запитване към таблицата, за да потвърдим дали изтриването е било успешно:
Резултатът показва, че записът е изтрит успешно.
Къде
Клаузата WHERE ни помага да посочим точното място, където трябва да направим промяна. Използва се заедно с изрази като INSERT, SELECT, UPDATE и DELETE. Разгледайте таблицата с цените със следните данни:
Да предположим, че трябва да видим записите, в които цената е по-малка от 250. Можем да изпълним следната команда:
SELECT * FROM price WHERE price < 250;
Всички записи, в които цената е под 250, са върнати.
Клаузата WHERE може да се комбинира с израза AND. Да предположим, че трябва да видим всички записи в таблицата с цени, където цената е под 250 и id е над 3. Можем да изпълним следната команда:
SELECT * FROM price WHERE id > 3 AND price < 250;
Върнат е само един запис. Причината е, че той трябва да отговаря на всички посочени условия, т.е. id над 3 и цена под 250. Ако някое от тези условия е нарушено, записът няма да бъде върнат.
Клаузата може да се комбинира и с командата OR. Нека заменим И в предишната ни команда с ИЛИ и да видим вида на изхода, който получаваме:
SELECT * FROM price WHERE id > 3 OR price < 250;
Сега получаваме 2 записа, а не 1. Това е така, защото за запис за квалификация трябва да отговаря само на едно от посочените условия.
като
Тази клауза се използва за указване на модела на данните при достъп до таблични данни, в които е необходимо точно съвпадение. Може да се комбинира с инструкциите INSERT, UPDATE, SELECT и DELETE.
Трябва да предадете модела от данни, които търсите, към клаузата и тя ще върне или true, или false. Ето заместващите знаци, които могат да се използват заедно с клаузата:
- %: за съвпадение на 0 или повече знаци.
- _: за съвпадение на един знак.
Ето синтаксиса на клаузата LIKE:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
Нека демонстрираме как да използваме клаузата със заместващия знак %. Нека използваме таблицата Book със следните записи:
Трябва да видим всички записи, в които името започва с M. Можем да изпълним следната команда:
SELECT name FROM book WHERE name LIKE 'M%';
Всички записи са върнати, защото имената им започват с буквата M. За да видите всички имена, които завършват на 4, можете да изпълните следната команда:
SELECT name FROM book WHERE name LIKE '%4';
Върнато е само едно име, защото то е единственото, което отговаря на условието.
Можем също да оградим модела за търсене със заместващия знак:
SELECT name FROM book WHERE name LIKE '%DB%';
Освен заместващия знак %, клаузата LIKE може да се използва заедно със заместващия знак _. Това е заместващият знак за подчертаване и ще търси само един знак.
Нека работим с таблицата на цените със следните записи:
Нека проверим за запис, в който цената е като 1_0. Изпълняваме следната команда:
SELECT * FROM price WHERE price LIKE '1_0';
Той върна записа, в който цената е 190. Можем да опитаме и друг модел:
SELECT * FROM price WHERE price LIKE '_2_';
Възможно е да използваме клаузата LIKE заедно с оператора NOT. Това ще върне всички записи, които не отговарят на посочения модел. Например:
Нека използваме таблицата с цените със следните записи:
Нека намерим всички записи, в които цената не започва с 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
Само един запис не отговаря на зададения модел.
Подредени по
Тази клауза ни помага да сортираме нашите записи във възходящ или низходящ ред. Използваме го с командата SELECT, както е показано по-долу:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Възможно е да използваме тази клауза, без да добавяме частта ASC или DESC. Например:
Ще използваме таблицата с цените със следните записи:
Изпълнете следната команда срещу таблицата:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
В горната команда сме подредили по цената. Записите са подредени с цените във възходящ ред. Това означава, че когато не посочим реда, сортирането се извършва във възходящ ред по подразбиране.
Нека изпълним клаузата с опцията DESC:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Записите са сортирани с цената в низходящ ред, както сме посочили.
Нека използваме клаузата ORDER BY заедно с атрибута ASC:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Записите са подредени, но с цените във възходящ ред. Това е подобно, когато използваме клаузата ORDER BY без ASC или DESC атрибути.
DISTINCT
Тази клауза ни помага да премахнем дубликатите, когато избираме записи от таблица. Това означава, че ни помага да получаваме уникални записи. Синтаксисът му е даден по-долу:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
За да демонстрираме това, ще използваме таблицата с цените със следните данни:
Когато изберем ценовата колона от таблицата, получаваме следния резултат:
SELECT price FROM Price;
Имаме два записа с цена 250, създавайки дубликат. Трябва да имаме само уникални записи. Можем да ги филтрираме с помощта на клаузата DISTINCT, както е показано по-долу:
SELECT DISTINCT price FROM Price;
Вече нямаме дубликати в горния резултат.
От
Клаузата FROM, използвана за извличане на данни от таблица на база данни. Може да помогне и при свързване на маси. Ето синтаксиса на командата:
SELECT columnNames FROM tableName;
За да видите съдържанието на таблицата с книги, изпълнете следната команда:
SELECT * FROM price;
Клаузата може да ви помогне да извлечете само една колона от таблица на база данни. Например:
SELECT price FROM Price;
Разширени задачи
Съхранена процедура
Процедурата е а 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 ;
След това можем да извикаме горната функция, както следва:
select sumFunc(1000);
Командата ще върне следното:
След като приключите с дадена функция, ще е добре да я изтриете. Това е лесно, тъй като трябва само да извикате оператора 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 в първата колона.