MariaDB Handledning

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) Ocuco-landskapet 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 BESKRIVNING
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 BESKRIVNING
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 BESKRIVNING
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 BESKRIVNING
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 BESKRIVNING
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.

Sammanfatta detta inlรคgg med: