MariaDB Handledning: Lär dig syntax, kommandon med exempel

Vad är MariaDB?

MariaDB är en gaffel av MySQL databashanteringssystem. Det är skapat av dess ursprungliga utvecklare. Detta DBMS-verktyg erbjuder databehandlingsmöjligheter för både små och företagsuppgifter.

MariaDB är en förbättrad version av MySQL. Den kommer med många inbyggda kraftfulla funktioner och många användbarhets-, säkerhets- och prestandaförbättringar som du inte kan hitta i MySQL.

Här är funktionerna i MariaDB:

  • Den fungerar under GPL-, BSD- eller LGPL-licenser.
  • MariaDB stöder ett populärt och vanligt frågespråk.
  • Den levereras med många lagringsmotorer, inklusive de högpresterande som kan integreras med andra relationsdatabashanteringssystem.
  • Den tillhandahåller Galera-klusterteknologin.
  • MariaDB stöder PHP, ett populärt språk för webbutveckling.
  • MariaDB kan köras på olika operativsystem och stöder många programmeringsspråk.
  • MariaDB kommer med ytterligare kommandon som inte är tillgängliga i MySQL. MySQL har funktioner som har en negativ inverkan på prestandan för DBMS. Sådana funktioner har ersatts i MariaDB.

MariaDB vs MySQL

Nedan är några viktiga skillnader mellan MariaDB vs MySQL

Parameter MariaDB MySQL
Fler alternativ för lagringsmotorer MariaDB har 12 nya lagringsmotorer som du inte hittar i MySQL. Den har färre alternativ för förvaring jämfört med MariaDB.
Hastighetsförbättringar MariaDB visar en förbättrad hastighet jämfört med MySQL. Den kommer med många funktioner för att optimera hastigheten. Sådana funktioner inkluderar härledda vyer/tabeller, subquery, exekveringskontroll, diskåtkomst och optimeringskontroll. MySQL uppvisar en lägre hastighet jämfört med MariaDB. Den förlitar sig på endast ett fåtal funktioner för hastighetsoptimering, till exempel hashindex.
Snabbare cache/index Med minneslagringsmotorn för MariaDB, en INSERT-sats kan fyllas i 24 % än i standarden MySQL. Minneslagringsmotorn för MySQL är långsammare jämfört med det MariaDB.
Större och snabbare anslutningspool MariaDB levereras med en avancerad trådpool som kan köras snabbare och stöder upp till 200,000 XNUMX+ anslutningar. Trådpoolen tillhandahålls av MySQL kan inte stödja upp till 200,000 XNUMX anslutningar per gång.
Förbättrad replikering In MariaDB, kan replikering göras säkrare och snabbare. Uppdateringar kan också göras 2 gånger snabbare jämfört med den traditionella MySQL. MySQLs community-utgåva tillåter att ett statiskt antal trådar kopplas. MySQLs företagsplan kommer med trådfunktioner.
Nya funktioner/tillägg MariaDB kommer med nya funktioner och tillägg inklusive JSON-, WITH- och KILL-satserna. Den nya MariaDB funktioner finns inte i MySQL.
Saknade funktioner MariaDB saknar några av funktionerna som tillhandahålls av MySQL företagsutgåva. För att lösa detta erbjuder den alternativa plugins med öppen källkod. Därav, MariaDB användare kan njuta av samma funktioner som MySQL Enterprise Edition användare. Enterprise Edition av MySQL använder en egen kod. Endast användare av MySQL Enterprise Edition har tillgång till detta.

Hur man installerar MariaDB

Installera som en fristående applikation

För att kunna använda MariaDBmåste du installera det på din dator.

Installationen kan göras genom att följa stegen nedan:

Steg 1) Öppna nedan URL
Ladda ner installationsfilen från länken https://downloads.mariadb.org/

Steg 2) Double klicka på filen för att starta installationen
När nedladdningen är klar öppnar du fil

Steg 3) Klicka på knappen Nästa
Klicka på Nästa i fönstret som dyker upp:

Installation av MariaDB

Steg 4) Acceptera licensavtalet
Klicka sedan på knappen Nästa:

Installation av MariaDB

Steg 5) Välja MariaDB server
Välj de funktioner som ska installeras och klicka på Nästa

Installation av MariaDB

Steg 6) Ange lösenordet
I nästa fönster kommer du att behöva ändra lösenordet för root-användaren.

  1. Ange lösenordet och bekräfta det genom att skriva in samma lösenord igen. Om du vill tillåta åtkomst från fjärrdatorer, aktivera den nödvändiga kryssrutan.
  2. När du är klar klickar du på knappen Nästa.

Installation av MariaDB

Steg 7) Ange namn och välj portnummer
I nästa fönster skriver du ett namn för instansen, väljer portnumret och ställer in önskad storlek. Klicka på knappen Nästa:

Installation av MariaDB

Steg 8) Klicka på Nästa
I nästa fönster klickar du helt enkelt på knappen Nästa.

Steg 9) Klicka på Installera
Starta installationen genom att klicka på knappen Installera.

Installation av MariaDB

Steg 10) En förloppsindikator visas
En förloppsindikator som visar installationens förlopp kommer att visas:

Installation av MariaDB

Steg 11) Klicka på Finish-knappen
När installationen är klar ser du knappen Slutför. Klicka på knappen för att stänga fönstret:

Installation av MariaDB

Steg 12) grattis!
Du har nu MariaDB installerad på din dator.

Arbeta med kommandotolken

Nu har du det MariaDB installerat på din dator är det dags för dig att starta den och börja använda den. Detta kan göras via MariaDB kommandotolken.

Följ stegen nedan:

Steg 1) Klicka på Start, välj Alla program och klicka sedan MariaDB.

Steg 2) Välj ett MariaDB Kommandotolken.

MariaDB kommando~~POS=TRUNC

Steg 3) Smakämnen MariaDB kommandotolken kommer att startas. Det är nu dags att logga in. Du bör logga in som root-användare och lösenordet som du angav under installationen av MariaDB. Skriv följande kommando på kommandotolken:

MySQL -u root -p

Steg 4) Ange lösenordet och tryck på returtangenten. Du bör vara inloggad, som visas nedan:

MariaDB kommando~~POS=TRUNC

Du är nu inloggad MariaDB.

Datatyper

MariaDB stöder följande datatyper:

  • Strängdatatyper
  • Numeriska datatyper
  • Datatyper för datum/tid
  • Datatyper för stora objekt

Strängdatatyper

Dessa inkluderar följande:

Strängdatatyp Description
röding (storlek) Storleken anger antalet tecken som ska lagras. Den lagrar maximalt 255 tecken. Fast längd strängar.
varchar(storlek) Storleken anger antalet tecken som ska lagras. Den lagrar maximalt 255 tecken. Variabel längd strängar.
textstorlek) Storleken anger antalet tecken som ska lagras. Den lagrar maximalt 255 tecken. Fast längd strängar.
binär (storlek) Storleken anger antalet tecken som ska lagras. Den lagrar maximalt 255 tecken. Snören i fast storlek.

Numeriska datatyper

De inkluderar följande:

Numeriska datatyper Description
bitars Ett mycket litet heltalsvärde som motsvarar tinyint(1). Signerade värden sträcker sig mellan -128 och 127. Osignerade värden sträcker sig mellan 0 och 255.
int(m) Ett standardheltalsvärde. Signerade värden sträcker sig mellan -2147483648 och 2147483647. Osignerade värden sträcker sig mellan 0 och 4294967295.
flyta (m, d) Ett flyttal med enkel precision.
dubbel(m,d) Ett flyttal med dubbel precision.
flyta (p) Ett flyttalnummer.

Datum/Tid Datatyper

Dessa inkluderar följande:

Datum/tid Datatyp Description
Datum Visas i formen 'åååå-mm-dd.' Värdena varierar mellan '1000-01-01' och '9999-12-31'.
datum Tid Visas i formen 'åååå-mm-dd hh:mm:ss'. Värdena varierar mellan '1000-01-01 00:00:00' och '9999-12-31 23:59:59'.
tidsstämpel(m) Visas i formen 'åååå-mm-dd hh:mm:ss'. Värdena varierar mellan '1970-01-01 00:00:01' utc och '2038-01-19 03:14:07' utc.
Tid Visas i formen 'hh:mm:ss'. Värden varierar mellan '-838:59:59' och '838:59:59'.

Stora objektdatatyper (LOB)

De inkluderar följande:

Stort objekt Datatyp Description
liten klump Dess maximala storlek är 255 byte.
blob (storlek) Tar 65,535 XNUMX byte som maximal storlek.
mediumblob Dess maximala storlek är 16,777,215 byte.
långtext Det tar 4 GB som maxstorlek.

Skapa en databas och tabeller

För att skapa en ny databas i MariaDB, bör du ha speciella privilegier som endast ges till rotanvändaren och administratörerna.

För att skapa en ny databas bör du använda kommandot CREATE DATABASE som tar följande syntax:

CREATE DATABASE DatabaseName;

I det här fallet måste du skapa en databas och ge den namnet Demo.

Starta MariaDB kommandotolken och logga in som rotanvändare genom att skriva följande kommando:

mysql -u root -p

Skriv in root-lösenordet och tryck på returtangenten. Du kommer att loggas in.

Kör nu följande kommando:

CREATE DATABASE Demo;

Skapa en databas och tabeller i MariaDB

Du har då skapat en databas med namnet Demo. Det kommer att vara bra för dig att bekräfta om databasen skapades framgångsrikt eller inte. Du behöver bara visa listan över tillgängliga databaser genom att köra följande kommando:

SHOW DATABASES;

Skapa en databas och tabeller i MariaDB

Ovanstående utdata visar att demodatabasen är en del av listan, varför databasen skapades framgångsrikt.

MariaDB Välj databas

För att du ska kunna använda eller arbeta på en viss databas måste du välja den från listan över tillgängliga databaser. Efter att ha valt en databas kan du utföra uppgifter som att skapa tabeller i databasen.

För att välja en databas bör du använda kommandot USE. Det tar syntaxen som anges nedan:

USE database_name;

Du måste använda demodatabasen. Du kan välja det genom att köra följande kommando:

USE Demo;

Skapa en databas och tabeller i MariaDB

Bilden ovan visar att MariaDB kommandotolken har ändrats från ingen till namnet på den databas som har valts.

Du kan nu gå vidare och skapa tabeller i demodatabasen.

MariaDB - Skapa bord

För att du ska kunna skapa en tabell måste du ha valt en databas. Tabellen kan skapas med CREATE TABLE-satsen. Här är syntaxen för kommandot:

CREATE TABLE tableName (columnName columnType);

Du kan ställa in en av kolumnerna som primärnyckel. Den här kolumnen bör inte tillåta nollvärden.

Vi kommer att skapa två tabeller i demodatabasen, bok- och pristabellerna. Varje tabell kommer att ha två kolumner.

Låt oss börja med att skapa boktabellen med två kolumner, id och namn. Kör följande kommando:

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

Skapa en databas och tabeller i MariaDB

PRIMARY KEY-begränsningen har använts för att ställa in id-kolumnen som primärnyckel för tabellen. Egenskapen AUTO_INCREMENT ökar värdena för id-kolumnen med 1 automatiskt för varje ny post som infogas i tabellen. Alla kolumner tillåter inte nollvärden.

Skapa nu den andra tabellen, pristabellen:

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

Skapa en databas och tabeller i MariaDB

Id-kolumnen har ställts in som primärnyckel för tabellen.

Visar tabeller

Nu när du har skapat de två tabellerna kommer det att vara bra för dig att överensstämma om tabellerna skapades framgångsrikt eller inte. Du kan visa listan över tabeller som finns i en databas genom att köra följande kommando:

SHOW TABLES;

Skapa en databas och tabeller i MariaDB

Ovanstående skärmdump visar att de två tabellerna skapades framgångsrikt i demodatabasen.

Visar tabellstruktur

För att se strukturen för en viss tabell kan du använda kommandot DESCRIBE, vanligtvis förkortat som DESC. Det tar följande syntax:

DESC TableName;

Till exempel, för att se strukturen för tabellen med namnet Bok, kan du köra följande kommando;

DESC Book;

Skapa en databas och tabeller i MariaDB

Tabellen har två kolumner. För att se strukturen i pristabellen kan du köra följande kommando:

DESC Price;

Skapa en databas och tabeller i MariaDB

CRUD och klausuler

INFOGA

För att infoga data i en MariaDB tabell, bör du använda INSERT INTO-satsen. Detta kommando tar syntaxen nedan:

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

Ovanstående syntax visar att du måste ange de tabellkolumner som du vill infoga data i samt de data som du behöver infoga.

Låt oss infoga en post i boktabellen:

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

CRUD och klausuler-INSERT

Du har infogat en enda post i tabellen. Infoga en post i pristabellen:

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

CRUD och klausuler-INSERT

Posten har skapats.

VÄLJA

SELECT-satsen hjälper oss att se eller se innehållet i en databastabell. För att se innehållet i boktabellen, till exempel, måste du köra följande kommando:

SELECT * from book;

CRUD och klausuler-INSERT

Se nu innehållet i pristabellen:

SELECT * from price;

CRUD och klausuler-INSERT

Infoga flera poster

Det är möjligt för oss att infoga flera poster i en MariaDB bord med en gång. För att demonstrera detta, kör följande exempel:

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

Infoga flera poster

Du kan fråga tabellen för att kontrollera om posterna har infogats:

SELECT * FROM book;

Infoga flera poster

Posterna infogades framgångsrikt. Infoga flera poster i pristabellen genom att köra det här exemplet:

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

Infoga flera poster

Låt oss bekräfta om posterna skapades framgångsrikt:

SELECT * FROM price;

Infoga flera poster

UPPDATERING

Kommandot UPDATE hjälper oss att ändra eller modifiera de poster som redan har infogats i en tabell. Du kan kombinera den med WHERE-satsen för att ange posten som ska uppdateras. Här är syntaxen:

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

Kommandot UPDATE kan också kombineras med satser som SET, WHERE, LIMIT och ORDER BY. Du kommer att se detta inom kort:

Betrakta tabellen med namnet Pris med följande poster:

CRUD och klausuler-UPPDATERING

Låt oss ändra priset på boken med ett id på 1 från 200 till 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD och klausuler-UPPDATERING

Kommandot kördes framgångsrikt. Du kan nu fråga tabellen för att se om ändringen har skett:

CRUD och klausuler-UPPDATERING

Ovanstående skärmdump visar att ändringen har implementerats. Betrakta tabellboken med följande poster:

CRUD och klausuler-UPPDATERING

Låt oss ändra namnet på boken som heter Bok till MariaDB Bok1. Lägg märke till att boken har ett id på 1. Här är kommandot för detta:

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

CRUD och klausuler-UPPDATERING

Kontrollera om ändringen har genomförts:

CRUD och klausuler-UPPDATERING

Ovanstående skärmdump visar att ändringen har implementerats framgångsrikt.

I exemplen ovan har vi bara ändrat en kolumn åt gången. Det är dock möjligt för oss att ändra flera kolumner samtidigt. Låt oss visa detta med ett exempel.

Låt oss använda pristabellen med följande data:

CRUD och klausuler-UPPDATERING

Låt oss ändra både id och pris på boken med id 5. Vi ändrar dess id till 6 och pris till 6. Kör följande kommando:

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

CRUD och klausuler-UPPDATERING

Fråga nu i tabellen för att kontrollera om ändringen gjordes framgångsrikt:

CRUD och klausuler-UPPDATERING

Ändringen gjordes framgångsrikt.

Radera

Vi använder kommandot DELETE när vi behöver ta bort antingen en eller flera poster från en tabell. Här är syntaxen för kommandot:

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

Betrakta pristabellen med följande poster:

CRUD och klausuler-DELETE

Vi måste ta bort den sista posten från tabellen. Den har ett id på 6 och ett pris på 280. Låt oss ta bort posten:

DELETE FROM price
WHERE id = 6;   

CRUD och klausuler-DELETE

Kommandot kördes framgångsrikt. Låt oss fråga tabellen för att bekräfta om raderingen lyckades:

CRUD och klausuler-DELETE

Utdata visar att posten raderades framgångsrikt.

Var

WHERE-satsen hjälper oss att ange den exakta platsen där vi behöver göra en ändring. Den används tillsammans med satser som INSERT, SELECT, UPDATE och DELETE. Betrakta pristabellen med följande data:

CRUD och klausuler-var

Anta att vi behöver se de poster där priset är mindre än 250. Vi kan köra följande kommando:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD och klausuler-var

Alla skivor där priset är under 250 har returnerats.

WHERE-satsen kan kombineras med AND-satsen. Anta att vi behöver se alla poster i pristabellen där priset är under 250 och id är över 3. Vi kan köra följande kommando:

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

CRUD och klausuler-var

Endast en post har returnerats. Anledningen är att den måste uppfylla alla villkor som har specificerats, det vill säga id över 3 och pris under 250. Om något av dessa villkor överträds kommer posten inte att returneras.

Klausulen kan också kombineras med OR-kommandot. Låt oss ersätta OCH i vårt tidigare kommando med OR och se vilken typ av utdata vi får:

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

CRUD och klausuler-var

Vi får nu 2 rekord istället för 1. Detta beror på att för ett kvalificeringsrekord måste det bara uppfylla ett av de angivna villkoren.

Tycka om

Den här klausulen används för att specificera datamönstret vid åtkomst av tabelldata där en exakt matchning är nödvändig. Det kan kombineras med INSERT-, UPDATE-, SELECT- och DELETE-satserna.

Du bör skicka mönstret av data du letar efter till klausulen, och den kommer att returnera antingen sant eller falskt. Här är jokertecken som kan användas tillsammans med klausulen:

  • %: för att matcha antingen 0 eller fler tecken.
  • _: för att matcha ett enstaka tecken.

Här är syntaxen för LIKE-satsen:

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

Låt oss visa hur man använder satsen med jokertecken %. Låt oss använda boktabellen med följande poster:

CRUD och klausuler-var

Vi måste se alla poster där namnet börjar med M. Vi kan köra följande kommando:

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

CRUD och klausuler-var

Alla poster har returnerats eftersom deras namn börjar med bokstaven M. För att se alla namn som slutar med 4 kan du köra följande kommando:

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

CRUD och klausuler-var

Endast ett namn har returnerats eftersom det är det enda som uppfyller villkoret.

Vi kan också omge sökmönstret med jokertecken:

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

CRUD och klausuler-var

Förutom jokertecknet % kan LIKE-satsen användas tillsammans med jokertecknet _. Detta är understrecket jokertecken, och det kommer bara att leta efter ett enda tecken.

Låt oss arbeta med pristabellen med följande poster:

CRUD och klausuler-var

Låt oss leta efter posten där priset är som 1_0. Vi kör följande kommando:

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

CRUD och klausuler-var

Det har returnerat rekordet där priset är 190. Vi kan också prova ett annat mönster:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD och klausuler-var

Det är möjligt för oss att använda LIKE-satsen tillsammans med NOT-operatorn. Detta kommer att returnera alla poster som inte uppfyller det angivna mönstret. Till exempel:

Låt oss använda pristabellen med följande poster:

CRUD och klausuler-var

Låt oss hitta alla poster där priset inte börjar med 2:

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

CRUD och klausuler-var

Endast en post uppfyller inte det angivna mönstret.

Sortera

Den här klausulen hjälper oss att sortera våra poster i antingen stigande eller fallande ordning. Vi använder det med SELECT-satsen, som visas nedan:

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

Det är möjligt för oss att använda denna klausul utan att lägga till vare sig ASC- eller DESC-delen. Till exempel:

Vi kommer att använda pristabellen med följande poster:

CRUD och klausuler-var

Kör följande kommando mot tabellen:

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

CRUD och klausuler-var

I kommandot ovan har vi beställt efter priset. Skivorna har beställts med priserna i stigande ordning. Det betyder att när vi inte anger ordningen sker sorteringen i stigande ordning som standard.

Låt oss köra klausulen med DESC-alternativet:

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

CRUD och klausuler-var

Posterna har sorterats med pris i fallande ordning som vi har specificerat.

Låt oss använda ORDER BY-satsen tillsammans med ASC-attributet:

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

CRUD och klausuler-var

Skivorna är beställda men med priserna i stigande ordning. Detta liknar när vi använder ORDER BY-satsen utan vare sig ASC- eller DESC-attribut.

TYDLIG

Den här klausulen hjälper oss att göra oss av med dubbletter när vi väljer poster från en tabell. Det betyder att det hjälper oss att få unika skivor. Dess syntax anges nedan:

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

För att visa detta kommer vi att använda pristabellen med följande data:

CRUD och Clauses-DISTINCT

När vi väljer priskolumnen från tabellen får vi följande resultat:

SELECT price FROM Price;

CRUD och Clauses-DISTINCT

Vi har två poster med ett pris på 250, vilket skapar en dubblett. Vi behöver bara ha unika register. Vi kan filtrera dessa genom att använda DISTINCT-satsen som visas nedan:

SELECT DISTINCT price FROM Price;

CRUD och Clauses-DISTINCT

Vi har nu inga dubbletter i ovanstående utdata.

Från

FROM-satsen som används för att hämta data från en databastabell. Det kan också vara till hjälp när man slår ihop bord. Här är syntaxen för kommandot:

SELECT columnNames FROM tableName; 

För att se innehållet i boktabellen, kör följande kommando:

SELECT * FROM price;

CRUD och klausuler-från

Klausulen kan hjälpa dig att bara hämta en enda kolumn från en databastabell. Till exempel:

SELECT price FROM Price;

CRUD och klausuler-från

Avancerade uppgifter

Lagrad procedur

En procedur är en MariaDB program som du kan skicka parametrar till. En procedur returnerar inte värden. För att skapa en procedur använder vi kommandot CREATE PROCEDURE.

För att visa hur man skapar och anropar en procedur kommer vi att skapa en procedur som heter myProcedure() som hjälper oss att välja namnkolumnen från boktabellen. Här är proceduren:

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

Avancerad uppgift lagrad procedur

Proceduren har skapats. Vi har helt enkelt bifogat SELECT-satsen i BEGIN- och END-satserna i proceduren.

Nu kan vi kalla proceduren med dess namn som visas nedan:

CALL myProcedure();

Avancerad uppgift lagrad procedur

Proceduren returnerar namnkolumnen i boktabellen när den anropas.

Vi kan skapa en procedur som tar in en parameter. Till exempel måste vi välja namnet på boken och filtrera med hjälp av bok-id. Vi kan skapa följande procedur för detta:

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

Avancerad uppgift lagrad procedur

Ovan har vi skapat en procedur som heter myProcedure2(). Denna procedur tar en heltalsparameter som heter book_id som är id för boken vars namn vi behöver se. För att se namnet på boken med id 3 kan vi anropa proceduren enligt följande:

CALL myProcedure2(3);

Avancerad uppgift lagrad procedur

Funktion

Till skillnad från procedurer måste vi skicka parametrar till funktioner och en funktion måste returnera ett värde. För att skapa en funktion i MariaDB, använder vi CREATE FUNCTION-satsen. Uttalandet har följande syntax:

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;

Ovanstående parametrar beskrivs nedan:

Parameter Description
DEFINER-klausul Denna parameter är valfri. Om du inte anger det kommer definieraren att bli användaren som skapade funktionen. Om det finns ett behov av att ange en annan definierare, inkludera DEFINER-satsen där användarnamnet kommer att vara definieraren av funktionen.
funktionsnamn Namnet som ska tilldelas denna funktion i MariaDB.
parameter Parametrarna som skickas till funktionen. Under skapandet av funktionen behandlas alla parametrar som IN-parametrar (istället för OUT/INOUT-parametrar).
return_datatype Datatypen för funktionens returvärde.
SPRÅK SQL Det påverkar portabiliteten men inte funktionen.
DETERMINISTISK Funktionen returnerar endast ett resultat när den ges ett antal parametrar.
INTE DETERMINISTISKT Det är möjligt för funktionen att returnera ett annat resultat när den ges ett antal parametrar.
INNEHÅLLER SQL informerar MariaDB att denna funktion innehåller SQL. Databasen kommer inte att verifiera om detta är sant.
INGEN SQL Denna klausul används inte, och den har ingen inverkan på din funktion.
LÄSER SQL DATA Berättar MariaDB att den här funktionen kommer att använda SELECT-satser för att läsa data, men den kommer inte att ändra data.
MODIFIERAR SQL-DATA Berättar MariaDB att denna funktion kommer att använda INSERT, DELETE, UPDATE och annat DDL satser för att ändra SQL-data.
deklarationssektion Det är här lokala variabler ska deklareras.
körbart avsnitt Funktionskoden ska läggas till här.

Här är ett exempel MariaDB fungera:

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 ;

Funktion i MariaDB

Vi kan sedan anropa ovanstående funktion enligt följande:

select sumFunc(1000);

Kommandot returnerar följande:

Funktion i MariaDB

När du är klar med en funktion är det bra för dig att ta bort den. Detta är enkelt eftersom du bara behöver anropa DROP FUNCTION-satsen som tar följande syntax:

DROP FUNCTION function_name;

Till exempel, för att ta bort funktionen som heter myFunc, kan vi köra följande kommando:

DROP FUNCTION myFunc;

JOIN

När du behöver hämta data från mer än en tabell samtidigt, använd MariaDB GÅR MED. Detta innebär att a JOIN fungerar på två eller flera bord. Följande tre typer av JOINS stöds i MariaDB:

  • INRE/ENKEL FÖRSAMLING
  • VÄNSTER YTTRE JOIN/LEFT JOIN
  • HÖGER YTTRE JOIN/HÖGER JOIN

Låt oss diskutera dem en i taget:

INNER JOIN

Den inre kopplingen returnerar alla rader från tabellerna där kopplingsvillkoret är sant. Dess syntax är följande:

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

Till exempel:

Vi kommer att använda våra två bord, böcker och bok.

Boktabellen har följande data:

INNER JOIN

Pristabellen har följande data:

INNER JOIN

Målet är att sammanfoga namnkolumnen från boktabellen och priskolumnen från pristabellen till en enda tabell. Detta är möjligt med en inre koppling, som visas nedan:

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

Kommandot returnerar följande:

INNER JOIN

VÄNSTER YTTRE GÅ MED

Denna koppling returnerar alla rader från den vänstra tabellen och endast rader där kopplingsvillkoret är sant från den andra tabellen. Dess syntax är följande:

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

Nyckelordet OUTER har placerats inom hakparenteser eftersom det är valfritt.

Till exempel:

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

Kommandot returnerar följande:

VÄNSTER YTTRE GÅ MED

Den sista posten i tabellen ovan har inget matchande värde till vänster. Det är därför den har ersatts med NULL.

HÖGER YTTRE JOIN

Denna koppling returnerar alla rader från den högra tabellen och endast rader där kopplingsvillkoret är sant från den andra tabellen. Dess syntax är följande:

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

Nyckelordet OUTER har placerats inom hakparenteser eftersom det är valfritt.

Till exempel:

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

Kommandot returnerar följande:

HÖGER YTTRE JOIN

Anledningen är att alla rader i den högra tabellen matchades med dem i den andra tabellen. Om några av raderna inte matchade, skulle vi ha NULLs i den första kolumnen.