MariaDB juhendaja

Mis on MariaDB?

MariaDB on kahvel MySQL andmebaasihaldussรผsteem. Selle on loonud selle algsed arendajad. See DBMS-i tรถรถriist pakub andmetรถรถtlusvรตimalusi nii vรคikeste kui ka ettevรตtete jaoks.

MariaDB on tรคiustatud versioon MySQL. Sellel on arvukalt sisseehitatud vรตimsaid funktsioone ja palju kasutusvรตimalusi, turvalisuse ja jรตudluse tรคiustusi, mida te ei leia MySQL.

Siin on funktsioonid MariaDB:

  • See tรถรถtab GPL-, BSD- vรตi LGPL-litsentside alusel.
  • MariaDB toetab populaarset ja standardset pรคringukeelt.
  • See on varustatud paljude salvestusmootoritega, sealhulgas suure jรตudlusega, mida saab integreerida teiste relatsiooniliste andmebaaside haldussรผsteemidega.
  • See pakub Galera klastri tehnoloogiat.
  • MariaDB toetab PHP-d, populaarset veebiarenduskeelt.
  • MariaDB vรตib tรถรถtada erinevates operatsioonisรผsteemides ja see toetab paljusid programmeerimiskeeli.
  • MariaDB kaasas tรคiendavad kรคsud, mis pole saadaval MySQL. MySQL sisaldab funktsioone, millel on negatiivne mรตju DBMS-i jรตudlusele. Sellised funktsioonid on asendatud MariaDB.

MariaDB vs MySQL

Allpool on toodud mรตned peamised erinevused MariaDB vs MySQL

Parameeter MariaDB MySQL
Rohkem valikuid salvestusmootorite jaoks MariaDB sellel on 12 uut salvestusmootorit, mida te ei leia MySQL. Sellel on vรคhem salvestusvรตimalusi vรตrreldes MariaDB.
Kiiruse parandused MariaDB nรคitab paremat kiirust vรตrreldes MySQL. Sellel on palju kiiruse optimeerimise funktsioone. Selliste funktsioonide hulka kuuluvad tuletatud vaated/tabelid, alampรคring, tรคitmise juhtimine, juurdepรครคs kettale ja optimeerija juhtimine. MySQL on aeglasema kiirusega vรตrreldes MariaDB. See tugineb kiiruse optimeerimiseks vaid mรตnele funktsioonile, nรคiteks rรคsiindeksitele.
Kiirem vahemรคlu/indeksid Koos mรคlusalvestusmootoriga MariaDB, saab INSERT-lauset tรคita 24% kui standardis MySQL. Mรคlu salvestamise mootor MySQL on sellega vรตrreldes aeglasem MariaDB.
Suurem ja kiirem รผhendusbassein MariaDB kaasas tรคiustatud keermekogum, mis suudab tรถรถtada kiiremini ja toetab kuni 200,000 XNUMX+ รผhendust. Niidibassein, mille pakub MySQL ei suuda toetada kuni 200,000 XNUMX รผhendust korraga.
Tรคiustatud replikatsioon In MariaDB, saab replikatsiooni teha turvalisemalt ja kiiremini. Vรคrskendusi saab teha ka 2x kiiremini vรตrreldes traditsioonilisega MySQL. MySQLkogukonna vรคljaanne vรตimaldab รผhendada staatilise arvu lรตime. MySQLettevรตtte รคriplaaniga on kaasas lรตime vรตimalused.
Uued funktsioonid/laiendused MariaDB kaasas uued funktsioonid ja laiendused, sealhulgas JSON, WITH ja KILL avaldused. Uus MariaDB funktsioone ei pakuta MySQL.
Puuduvad funktsioonid MariaDB puuduvad mรตned funktsioonid, mida pakub MySQL ettevรตtte vรคljaanne. Selle lahendamiseks pakub see alternatiivseid avatud lรคhtekoodiga pistikprogramme. Seega MariaDB kasutajad saavad nautida samu funktsioone nagu MySQL Enterprise Editioni kasutajad. aasta Enterprise Edition MySQL kasutab patenteeritud koodi. Ainult kasutajad MySQL Enterprise Editionil on sellele juurdepรครคs.

Kuidas paigaldada MariaDB

Installige eraldiseisva rakendusena

Selleks, et kasutada MariaDB, peate selle oma arvutisse installima.

Paigaldamist saab teha, jรคrgides alltoodud samme:

Step 1) Avage allpool URL
Laadige installifail alla lingist https://downloads.mariadb.org/

Step 2) Double installimise alustamiseks klรตpsake failil
Kui allalaadimine on lรตppenud, avage fail

Step 3) Klรตpsake nuppu Edasi
Avanevas aknas klรตpsake nuppu Edasi:

Paigaldamine MariaDB

Step 4) Nรตustuge litsentsilepinguga
Seejรคrel klรตpsake nuppu Edasi:

Paigaldamine MariaDB

Step 5) Vali MariaDB server
Valige installitavad funktsioonid ja klรตpsake nuppu Edasi

Paigaldamine MariaDB

Step 6) Sisestage parool
Jรคrgmises aknas peate muutma juurkasutaja parooli.

  1. Sisestage parool ja kinnitage see, sisestades sama parooli uuesti. Kui soovite lubada juurdepรครคsu kaugmasinatest, aktiveerige vajalik mรคrkeruut.
  2. Kui olete valmis, klรตpsake nuppu Edasi.

Paigaldamine MariaDB

Step 7) Sisestage nimi ja valige pordi number
Jรคrgmises aknas tippige eksemplari nimi, valige pordi number ja mรครคrake vajalik suurus. Klรตpsake nuppu Edasi:

Paigaldamine MariaDB

Step 8) Klรตpsake nuppu Edasi
Jรคrgmises aknas klรตpsake lihtsalt nuppu Edasi.

Step 9) Klรตpsake nuppu Installi
Kรคivitage installimine, klรตpsates nuppu Installi.

Paigaldamine MariaDB

Step 10) Kuvatakse edenemisriba
Kuvatakse edenemisriba, mis nรคitab installimise edenemist:

Paigaldamine MariaDB

Step 11) Klรตpsake nuppu Lรตpeta
Kui installimine on lรตppenud, nรคete nuppu Lรตpeta. Akna sulgemiseks klรตpsake nuppu:

Paigaldamine MariaDB

Step 12) ร•nnitleme!
Nรผรผd on teil MariaDB arvutisse installitud.

Tรถรถ kรคsuviibaga

Nรผรผd, kui teil on MariaDB arvutisse installitud, on aeg see kรคivitada ja kasutama hakata. Seda saab teha kaudu MariaDB kรคsurida.

Jรคrgige alltoodud samme:

Step 1) Klรตpsake nuppu Start, valige Kรตik programmid ja seejรคrel klรตpsake nuppu MariaDB...

Step 2) Vali MariaDB Command Prompt.

MariaDB Command Prompt

Step 3) . MariaDB kรคivitatakse kรคsuviip. Nรผรผd on aeg sisse logida. Peaksite sisse logima juurkasutajana ja installimisel mรครคratud parooliga MariaDB. Tippige kรคsureale jรคrgmine kรคsk:

MySQL -u root -p

Step 4) Sisestage parool ja vajutage tagastusklahvi. Peaksite olema sisse logitud, nagu allpool nรคidatud:

MariaDB Command Prompt

Olete nรผรผd sisse logitud MariaDB.

Andmetรผรผbid

MariaDB toetab jรคrgmisi andmetรผรผpe:

  • Stringi andmetรผรผbid
  • Numbrilised andmetรผรผbid
  • Kuupรคeva/kellaaja andmetรผรผbid
  • Suurte objektide andmetรผรผbid

Stringi andmetรผรผbid

Nende hulka kuulub jรคrgmine:

Stringi andmetรผรผp Kirjeldus
char (suurus) Suurus tรคhistab salvestatavate mรคrkide arvu. See salvestab maksimaalselt 255 tรคhemรคrki. Fikseeritud pikkusega stringid.
varchar (suurus) Suurus tรคhistab salvestatavate mรคrkide arvu. See salvestab maksimaalselt 255 tรคhemรคrki. Muutuva pikkusega stringid.
tekst (suurus) Suurus tรคhistab salvestatavate mรคrkide arvu. See salvestab maksimaalselt 255 tรคhemรคrki. Fikseeritud pikkusega stringid.
binaarne (suurus) Suurus tรคhistab salvestatavate mรคrkide arvu. See salvestab maksimaalselt 255 tรคhemรคrki. Fikseeritud suurusega stringid.

Numbrilised andmetรผรผbid

Nende hulka kuuluvad:

Numbrilised andmetรผรผbid Kirjeldus
natuke Vรคga vรคike tรคisarv, mis vรตrdub tinyint(1)-ga. Mรคrgiga vรครคrtused jรครคvad vahemikku โ€“128 kuni 127. Mรคrgimรคrgita vรครคrtused jรครคvad vahemikku 0 kuni 255.
int(m) Standardne tรคisarv. Mรคrgiga vรครคrtused jรครคvad vahemikku -2147483648 kuni 2147483647. Mรคrgimรคrgita vรครคrtused jรครคvad vahemikku 0 kuni 4294967295.
ujuk(m, d) รœhe tรคpsusega ujukomaarv.
double(m,d) Kahekordse tรคpsusega ujukomaarv.
ujuki (p) Ujukomaarv.

Kuupรคeva/kellaaja andmetรผรผbid

Nende hulka kuulub jรคrgmine:

Kuupรคeva/kellaaja andmetรผรผp Kirjeldus
kuupรคev Kuvatakse kujul 'yyyy-mm-dd.' Vรครคrtused jรครคvad vahemikku '1000-01-01' ja '9999-12-31'.
Datetime Kuvatakse kujul 'yyyy-mm-dd hh:mm:ss'. Vรครคrtused jรครคvad vahemikku '1000-01-01 00:00:00' ja '9999-12-31 23:59:59'.
ajatempel (m) Kuvatakse kujul 'yyyy-mm-dd hh:mm:ss'. Vรครคrtused jรครคvad vahemikku '1970-01-01 00:00:01' utc ja '2038-01-19 03:14:07' utc.
aeg Kuvatakse kujul 'hh:mm:ss'. Vรครคrtused jรครคvad vahemikku '-838:59:59' ja '838:59:59'.

suurte objektide andmetรผรผbid (LOB)

Nende hulka kuuluvad:

Suure objekti andmetรผรผp Kirjeldus
tilluke Selle maksimaalne suurus on 255 baiti.
plekk (suurus) Maksimaalne suurus on 65,535 XNUMX baiti.
keskmine tรคpp Selle maksimaalne suurus on 16,777,215 baiti.
pikk tekst See vรตtab maksimaalseks suuruseks 4 GB.

Looge andmebaas ja tabelid

Uue andmebaasi loomiseks MariaDB, peaksid teil olema eriรตigused, mis antakse ainult juurkasutajale ja administraatoritele.

Uue andmebaasi loomiseks peaksite kasutama kรคsku CREATE DATABASE, mis vรตtab jรคrgmise sรผntaksi:

CREATE DATABASE DatabaseName;

Sel juhul peate looma andmebaasi ja andma sellele nime Demo.

Alusta MariaDB kรคsuviiba ja logige sisse juurkasutajana, tippides jรคrgmise kรคsu:

mysql -u root -p

Tippige juurparool ja vajutage tagastusklahvi. Teid logitakse sisse.

Nรผรผd kรคivitage jรคrgmine kรคsk:

CREATE DATABASE Demo;

Looge andmebaas ja tabelid MariaDB

Seejรคrel olete loonud andmebaasi nimega Demo. Teil on hea kontrollida, kas andmebaasi loomine รตnnestus vรตi mitte. Peate kuvama ainult saadaolevate andmebaaside loendi, kรคivitades jรคrgmise kรคsu:

SHOW DATABASES;

Looge andmebaas ja tabelid MariaDB

รœlaltoodud vรคljund nรคitab, et demo andmebaas on loendi osa, seega on andmebaas edukalt loodud.

MariaDB Valige Andmebaas

Et saaksite konkreetset andmebaasi kasutada vรตi sellega tรถรถtada, peate selle olemasolevate andmebaaside loendist valima. Pรคrast andmebaasi valimist saate teha selliseid toiminguid nagu andmebaasis tabelite loomine.

Andmebaasi valimiseks tuleks kasutada kรคsku USE. See vรตtab allpool toodud sรผntaksi:

USE database_name;

Peate kasutama demo andmebaasi. Saate selle valida, kรคivitades jรคrgmise kรคsu:

USE Demo;

Looge andmebaas ja tabelid MariaDB

รœlaltoodud pilt nรคitab, et MariaDB kรคsuviip on muutunud nullist valitud andmebaasi nimeks.

Nรผรผd saate demo andmebaasis tabeleid luua.

MariaDB - Loo tabel

Tabeli loomiseks peab olema valitud andmebaas. Tabelit saab luua kรคsu CREATE TABLE abil. Siin on kรคsu sรผntaks:

CREATE TABLE tableName (columnName columnType);

Saate mรครคrata รผhe veeru esmaseks vรตtmeks. See veerg ei tohiks lubada nullvรครคrtusi.

Loome demo andmebaasis kaks tabelit, raamatu ja hinna tabelid. Igal tabelis on kaks veergu.

Alustame kahe veeru, ID ja nimega tabeli Raamatu loomisega. Kรคivitage jรคrgmine kรคsk:

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

Looge andmebaas ja tabelid MariaDB

Piirangut PRIMARY KEY on kasutatud id veeru mรครคramiseks tabeli primaarvรตtmeks. Atribuut AUTO_INCREMENT suurendab id veeru vรครคrtusi automaatselt 1 vรตrra iga uue tabelisse sisestatud kirje puhul. Kรตik veerud ei luba nullvรครคrtusi.

Nรผรผd looge teine โ€‹โ€‹tabel, hinnatabel:

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

Looge andmebaas ja tabelid MariaDB

Veerg ID on seatud tabeli primaarvรตtmeks.

Kuvatakse tabelid

Nรผรผd, kui olete kaks tabelit loonud, on hea, kui saate vastavusse viia, kas tabelite loomine รตnnestus vรตi mitte. Saate kuvada andmebaasis olevate tabelite loendi, kรคivitades jรคrgmise kรคsu:

SHOW TABLES;

Looge andmebaas ja tabelid MariaDB

รœlaltoodud ekraanipilt nรคitab, et kaks tabelit loodi demo andmebaasis edukalt.

Kuvatakse tabeli struktuur

Konkreetse tabeli struktuuri nรคgemiseks vรตite kasutada kรคsku DESCRIBE, mida tavaliselt nimetatakse DESC. See vรตtab jรคrgmise sรผntaksi:

DESC TableName;

Nรคiteks, et nรคha tabeli nimega Book struktuuri, saate kรคivitada jรคrgmise kรคsu;

DESC Book;

Looge andmebaas ja tabelid MariaDB

Tabelis on kaks veergu. Hindade tabeli struktuuri nรคgemiseks saate kรคivitada jรคrgmise kรคsu:

DESC Price;

Looge andmebaas ja tabelid MariaDB

CRUD ja klauslid

INSERT

Andmete sisestamiseks a MariaDB tabelis, peaksite kasutama kรคsku INSERT INTO. See kรคsk vรตtab allpool toodud sรผntaksi:

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

รœlaltoodud sรผntaks nรคitab, et peate mรครคrama tabeli veerud, millesse soovite andmeid sisestada, ja ka andmed, mida peate sisestama.

Sisestame raamatu tabelisse kirje:

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

CRUD ja Clauses-INSERT

Olete tabelisse lisanud รผhe kirje. Sisestage kirje hinnatabelisse:

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

CRUD ja Clauses-INSERT

Kirje on loodud.

SELECT

SELECT-lause aitab meil vaadata vรตi nรคha andmebaasi tabeli sisu. Nรคiteks tabeli Book sisu nรคgemiseks peate kรคivitama jรคrgmise kรคsu:

SELECT * from book;

CRUD ja Clauses-INSERT

Nรผรผd vaadake hinnatabeli sisu:

SELECT * from price;

CRUD ja Clauses-INSERT

Mitme kirje sisestamine

Meil on vรตimalik a-sse sisestada mitu kirjet MariaDB laud korraga. Selle demonstreerimiseks kรคivitage jรคrgmine nรคide:

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

Mitme kirje sisestamine

Saate teha tabelist pรคringu, et kontrollida, kas kirjed sisestati edukalt:

SELECT * FROM book;

Mitme kirje sisestamine

Kirjete sisestamine รตnnestus. Sisestage tabelisse Hind mitu kirjet, kรคivitades jรคrgmise nรคite:

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

Mitme kirje sisestamine

Kontrollime, kas kirjete loomine รตnnestus:

SELECT * FROM price;

Mitme kirje sisestamine

UPDATE

Kรคsk UPDATE aitab meil muuta vรตi muuta kirjeid, mis on juba tabelisse sisestatud. Saate selle kombineerida WHERE-klausliga, et mรครคrata vรคrskendatav kirje. Siin on sรผntaks:

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

UPDATE kรคsku saab kombineerida ka selliste klauslitega nagu SET, WHERE, LIMIT ja ORDER BY. Peagi nรคete seda:

Mรตelge tabelile Hind koos jรคrgmiste kirjetega:

CRUD ja Clauses-UPDATE

Muudame id-ga 1 raamatu hinna 200-lt 250-le:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD ja Clauses-UPDATE

Kรคsk toimis edukalt. Nรผรผd saate tabelist kรผsida, kas muudatus toimus:

CRUD ja Clauses-UPDATE

รœlaltoodud ekraanipilt nรคitab, et muudatus on rakendatud. Vaatleme tabelit Raamat jรคrgmiste kirjetega:

CRUD ja Clauses-UPDATE

Muudame raamatu nimega Book uueks nimeks MariaDB Raamat 1. Pange tรคhele, et raamatu ID on 1. Siin on kรคsk selle jaoks:

UPDATE book
SET name = โ€œMariaDB Book1โ€
WHERE id = 1;

CRUD ja Clauses-UPDATE

Kontrollige, kas muudatus on rakendatud:

CRUD ja Clauses-UPDATE

รœlaltoodud ekraanipilt nรคitab, et muudatus on edukalt rakendatud.

รœlaltoodud nรคidetes oleme muutnud ainult รผhte veergu korraga. Siiski on meil vรตimalik mitut veergu korraga muuta. Nรคitame seda nรคite abil.

Kasutame Hindade tabelit jรคrgmiste andmetega:

CRUD ja Clauses-UPDATE

Muutkem nii raamatu ID kui ka hind id-ga 5. Muudame selle id-ks 6 ja hinnaks 6. Kรคivitage jรคrgmine kรคsk:

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

  CRUD ja Clauses-UPDATE

Nรผรผd kรผsige tabelist, kas muudatus tehti edukalt:

CRUD ja Clauses-UPDATE

Muudatus tehti edukalt.

kustutama

Kasutame kรคsku DELETE, kui peame tabelist kustutama รผhe vรตi mitu kirjet. Siin on kรคsu sรผntaks:

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

Kaaluge hinnatabelit jรคrgmiste kirjetega:

CRUD ja Clauses-DELETE

Peame tabelist viimase kirje kustutama. Selle ID on 6 ja hind 280. Kustutame kirje:

DELETE FROM price
WHERE id = 6;   

CRUD ja Clauses-DELETE

Kรคsk toimis edukalt. Kรผsige tabelist, kas kustutamine รตnnestus:

CRUD ja Clauses-DELETE

Vรคljund nรคitab, et kirje kustutati edukalt.

Kus

WHERE-klausel aitab meil mรครคrata tรคpse asukoha, kus peame muudatuse tegema. Seda kasutatakse koos selliste lausetega nagu INSERT, SELECT, UPDATE ja DELETE. Vaadake hinnatabelit jรคrgmiste andmetega:

CRUD ja klauslid-kus

Oletame, et peame nรคgema kirjeid, mille hind on alla 250. Saame kรคivitada jรคrgmise kรคsu:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD ja klauslid-kus

Kรตik kirjed, milles hind on alla 250, on tagastatud.

WHERE-klauslit saab kombineerida AND-lausega. Oletame, et peame nรคgema hinnatabelis kรตiki kirjeid, kus hind on alla 250 ja id on suurem kui 3. Saame kรคivitada jรคrgmise kรคsu:

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

CRUD ja klauslid-kus

Tagastatud on ainult รผks plaat. Pรตhjus on selles, et see peab vastama kรตigile mรครคratud tingimustele, st id รผle 3 ja hind alla 250. Kui mรตnda neist tingimustest rikutakse, siis rekordit ei tagastata.

Klauslit saab kombineerida ka kรคsuga Vร•I. Asendame eelmise kรคsu AND-i kรคsuga Vร•I ja vaatame, millist vรคljundit saame:

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

CRUD ja klauslid-kus

Nรผรผd saame 2 rekordit 1 asemel. Seda seetรตttu, et kvalifitseerumise rekord peab vastama ainult รผhele mรครคratud tingimustest.

nagu

Seda klauslit kasutatakse andmemustri mรครคramiseks, kui pรครคsete juurde tabeliandmetele, mille puhul on vajalik tรคpne vaste. Seda saab kombineerida kรคskudega INSERT, UPDATE, SELECT ja DELETE.

Peaksite klauslile edastama otsitavate andmete mustri ja see tagastab kas tรตene vรตi vรครคr. Siin on metamรคrgid, mida saab koos klausliga kasutada:

  • %: 0 vรตi enama tรคhemรคrgi sobitamiseks.
  • _: รผhe mรคrgi sobitamiseks.

Siin on LIKE-klausli sรผntaks:

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

Nรคitame, kuidas kasutada lauset % metamรคrgiga. Kasutame tabelit Book jรคrgmiste kirjetega:

CRUD ja klauslid-kus

Peame nรคgema kรตiki kirjeid, mille nimi algab tรคhega M. Saame kรคivitada jรคrgmise kรคsu:

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

 CRUD ja klauslid-kus

Kรตik kirjed on tagastatud, kuna nende nimed algavad M-tรคhega. Kรตigi 4-ga lรตppevate nimede nรคgemiseks vรตite kรคivitada jรคrgmise kรคsu:

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

CRUD ja klauslid-kus

Tagastati ainult รผks nimi, kuna see on ainus, mis vastab tingimusele.

Vรตime otsingumustri รผmbritseda ka metamรคrgiga:

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

CRUD ja klauslid-kus

Muud kui metamรคrk %, saab LIKE-klauslit kasutada koos metamรคrgiga _. See on allkriipsu metamรคrk ja see otsib ainult รผhte tรคhemรคrki.

Tรถรถtame hinnatabeliga jรคrgmiste kirjetega:

CRUD ja klauslid-kus

Kontrollime kirjet, milles hind on nagu 1_0. Kรคivitame jรคrgmise kรคsu:

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

CRUD ja klauslid-kus

Ta on tagastanud rekordi, mille hind on 190. Vรตime proovida ka teist mustrit:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD ja klauslid-kus

Meil on vรตimalik kasutada LIKE-klauslit koos operaatoriga NOT. See tagastab kรตik kirjed, mis ei vasta mรครคratud mustrile. Nรคiteks:

Kasutagem Hindade tabelit jรคrgmiste kirjetega:

CRUD ja klauslid-kus

Leiame kรตik kirjed, mille hind ei alga 2-ga:

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

CRUD ja klauslid-kus

Ainult รผks kirje ei vasta mรครคratud mustrile.

Telli

See klausel aitab meil kirjeid jรคrjestada kas kasvavas vรตi kahanevas jรคrjekorras. Kasutame seda koos SELECT-lausega, nagu allpool nรคidatud:

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

Meil on vรตimalik seda klauslit kasutada ilma ASC vรตi DESC osa lisamata. Nรคiteks:

Kasutame hinnatabelit jรคrgmiste kirjetega:

CRUD ja klauslid-kus

Kรคivitage tabeli vastu jรคrgmine kรคsk:

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

CRUD ja klauslid-kus

รœlaltoodud kรคsus oleme tellinud hinna jรคrgi. Plaadid on tellitud hindadega kasvavas jรคrjekorras. See tรคhendab, et kui me jรคrjekorda ei mรครคra, toimub sortimine vaikimisi kasvavas jรคrjekorras.

Kรคitame klausli valikuga DESC:

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

 CRUD ja klauslid-kus

Kirjed on sorteeritud hindadega kahanevas jรคrjekorras, nagu oleme tรคpsustanud.

Kasutame klauslit ORDER BY koos atribuudiga ASC:

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

 CRUD ja klauslid-kus

Plaadid on tellitud, kuid hinnad kasvavas jรคrjekorras. See sarnaneb sellega, kui kasutame klauslit ORDER BY ilma atribuutideta ASC vรตi DESC.

DISTINCT

See klausel aitab meil tabelist kirjete valimisel kaotada duplikaadid. See tรคhendab, et see aitab meil saada ainulaadseid kirjeid. Selle sรผntaks on toodud allpool:

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

Selle demonstreerimiseks kasutame hinnatabelit jรคrgmiste andmetega:

CRUD ja klauslid-DISTINCT

Kui valime tabelist hinnaveeru, saame jรคrgmise tulemuse:

SELECT price FROM Price;

CRUD ja klauslid-DISTINCT

Meil on kaks plaati hinnaga 250, luues duplikaadi. Meil peavad olema ainult ainulaadsed kirjed. Saame neid filtreerida DISTINCT-klausli abil, nagu allpool nรคidatud:

SELECT DISTINCT price FROM Price;

CRUD ja klauslid-DISTINCT

Nรผรผd pole meil รผlaltoodud vรคljundis รผhtegi duplikaati.

alates

FROM-klausel, mida kasutatakse andmebaasi tabelist andmete toomiseks. See vรตib aidata ka laudade รผhendamisel. Siin on kรคsu sรผntaks:

SELECT columnNames FROM tableName; 

Raamatutabeli sisu vaatamiseks kรคivitage jรคrgmine kรคsk:

SELECT * FROM price;

CRUD ja Clauses-From

See klausel aitab teil andmebaasitabelist tuua ainult รผhe veeru. Nรคiteks:

SELECT price FROM Price;

CRUD ja Clauses-From

Tรคpsemad รผlesanded

Salvestatud protseduur

Protseduur on a MariaDB programm, millele saate parameetreid edastada. Protseduur ei tagasta vรครคrtusi. Protseduuri loomiseks kasutame kรคsku CREATE PROCEDURE.

Protseduuri loomise ja kutsumise demonstreerimiseks loome protseduuri nimega myProcedure(), mis aitab meil raamatutabelist nimeveergu valida. Siin on protseduur:

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

Tรคiustatud รผlesannete salvestamise protseduur

Protseduur on loodud. Oleme lihtsalt lisanud SELECT-lause protseduuri klauslitesse BEGIN ja END.

Nรผรผd saame protseduuri nimetada selle nime jรคrgi, nagu allpool nรคidatud:

CALL myProcedure();

Tรคiustatud รผlesannete salvestamise protseduur

Protseduur tagastab kutsumisel raamatutabeli nime veeru.

Saame luua protseduuri, mis vรตtab parameetri. Nรคiteks peame valima raamatu nime ja filtreerima raamatu ID abil. Selleks saame luua jรคrgmise protseduuri:

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

Tรคiustatud รผlesannete salvestamise protseduur

Eespool oleme loonud protseduuri nimega myProcedure2(). See protseduur vรตtab รผhe tรคisarvulise parameetri nimega book_id, mis on selle raamatu ID, mille nime peame nรคgema. Raamatu nime nรคgemiseks ID-ga 3 saame protseduuri kutsuda jรคrgmiselt:

CALL myProcedure2(3);

Tรคiustatud รผlesannete salvestamise protseduur

funktsioon

Erinevalt protseduuridest peame funktsioonidele edastama parameetrid ja funktsioon peab tagastama vรครคrtuse. Funktsiooni loomiseks sisse MariaDB, kasutame lauset CREATE FUNCTION. Avaldus kasutab jรคrgmist sรผntaksit:

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;

รœlaltoodud parameetreid kirjeldatakse allpool:

Parameeter Kirjeldus
DEFINER klausel See parameeter on valikuline. Kui te seda ei mรครคra, saab defineerijast funktsiooni loonud kasutaja. Kui on vaja mรครคrata mรตni muu defineerija, lisage DEFINER-klausel, milles kasutajanimi on funktsiooni defineerija.
funktsiooni_nimi Nimi, mis tuleb sellele funktsioonile mรครคrata MariaDB.
parameeter Funktsioonile edastatud parameeter(id). Funktsiooni loomise ajal kรคsitletakse kรตiki parameetreid kui IN parameetrid (mitte OUT/INOUT parameetrid).
tagastamise_andmetรผรผp Funktsiooni tagastusvรครคrtuse andmetรผรผp.
KEEL SQL See mรตjutab kaasaskantavust, kuid mitte funktsiooni.
DETERMINISTIK Funktsioon tagastab รผhe tulemuse ainult siis, kui sellele on antud mitu parameetrit.
EI OLE DETERMINISTLIK Funktsioonil on vรตimalik mitme parameetri korral tagastada erinev tulemus.
SISALDAB SQL-i Teatab MariaDB et see funktsioon sisaldab SQL-i. Andmebaas ei kontrolli, kas see on tรตsi.
EI OLE SQL-i Seda klauslit ei kasutata ja see ei mรตjuta teie funktsiooni.
LOEB SQL ANDMEID รœtleb MariaDB et see funktsioon kasutab andmete lugemiseks SELECT-lauseid, kuid ei muuda andmeid.
MUUDAB SQL ANDMEID รœtleb MariaDB et see funktsioon kasutab INSERT, DELETE, UPDATE ja muud DDL SQL-andmete muutmiseks.
deklaratsiooni-osa Siin tuleks deklareerida kohalikud muutujad.
kรคivitatav sektsioon Siia tuleks lisada funktsiooni kood.

Siin on nรคide MariaDB funktsioon:

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 ;

Funktsioon sisse MariaDB

Seejรคrel saame รผlaltoodud funktsiooni kutsuda jรคrgmiselt:

select sumFunc(1000);

Kรคsk tagastab jรคrgmise:

Funktsioon sisse MariaDB

Kui olete funktsiooniga lรตpetanud, on hea see kustutada. See on lihtne, kuna peate helistama ainult DROP FUNCTION lausele, mis vรตtab jรคrgmise sรผntaksi:

DROP FUNCTION function_name;

Nรคiteks funktsiooni myFunc loobumiseks saame kรคivitada jรคrgmise kรคsu:

DROP FUNCTION myFunc;

LIITU

Kui teil on vaja andmeid hankida korraga rohkem kui รผhest tabelist, kasutage MariaDB LIITUB. See tรคhendab, et a LIITU tรถรถtab kahel vรตi enamal laual. Toetatud on kolm jรคrgmist tรผรผpi JOINS-i MariaDB:

  • SISEMINE/LIHTNE LIITUMINE
  • LEFT OUT JOIN/LEFT JOIN
  • RIGHT OUTTER JOIN/RIGHT JOIN

Arutame neid รผkshaaval:

INNER JOIN

Sisemine liitumine tagastab kรตik read tabelitest, milles liitumise tingimus on tรตene. Selle sรผntaks on jรคrgmine:

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

Nรคiteks:

Kasutame oma kahte lauda, โ€‹โ€‹raamatut ja raamatut.

Raamatutabelil on jรคrgmised andmed:

INNER JOIN

Hindade tabelis on jรคrgmised andmed:

INNER JOIN

Eesmรคrk on รผhendada tabelist Raamatud olev nimede veerg ja hinnatabeli hinnaveerg รผheks tabelisse. See on vรตimalik sisemise รผhendusega, nagu on nรคidatud allpool:

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

Kรคsk tagastab jรคrgmise:

INNER JOIN

VASAKU Vร„LIMISE LIITUMINE

See liitmine tagastab kรตik vasakpoolse tabeli read ja teisest tabelist ainult need read, mille liitumise tingimus on tรตene. Selle sรผntaks on jรคrgmine:

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

Mรคrksรตna OUTER on paigutatud nurksulgudesse, kuna see on valikuline.

Nรคiteks:

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

Kรคsk tagastab jรคrgmise:

VASAKU Vร„LIMISE LIITUMINE

รœlaltoodud tabeli viimasel kirjel pole vasakul vastet. Seetรตttu on see asendatud NULL-iga.

PAREM Vร„LILINE LIITUMINE

See liitmine tagastab kรตik parempoolse tabeli read ja teisest tabelist ainult need read, mille liitumise tingimus on tรตene. Selle sรผntaks on jรคrgmine:

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

Mรคrksรตna OUTER on paigutatud nurksulgudesse, kuna see on valikuline.

Nรคiteks:

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

Kรคsk tagastab jรคrgmise:

PAREM Vร„LILINE LIITUMINE

Pรตhjus on selles, et parempoolse tabeli kรตik read sobitati teise tabeli ridadega. Kui mรตned read ei รผhti, on esimeses veerus NULL-id.

Vรตta see postitus kokku jรคrgmiselt: