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:
Step 4) Nรตustuge litsentsilepinguga
Seejรคrel klรตpsake nuppu Edasi:
Step 5) Vali MariaDB server
Valige installitavad funktsioonid ja klรตpsake nuppu Edasi
Step 6) Sisestage parool
Jรคrgmises aknas peate muutma juurkasutaja parooli.
- Sisestage parool ja kinnitage see, sisestades sama parooli uuesti. Kui soovite lubada juurdepรครคsu kaugmasinatest, aktiveerige vajalik mรคrkeruut.
- Kui olete valmis, klรตpsake nuppu Edasi.
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:
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.
Step 10) Kuvatakse edenemisriba
Kuvatakse edenemisriba, mis nรคitab installimise edenemist:
Step 11) Klรตpsake nuppu Lรตpeta
Kui installimine on lรตppenud, nรคete nuppu Lรตpeta. Akna sulgemiseks klรตpsake nuppu:
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.
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:
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;
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;
ร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;
ร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));
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));
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;
ร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;
Tabelis on kaks veergu. Hindade tabeli struktuuri nรคgemiseks saate kรคivitada jรคrgmise kรคsu:
DESC Price;
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');
Olete tabelisse lisanud รผhe kirje. Sisestage kirje hinnatabelisse:
INSERT INTO price (id, price) VALUES(1, 200);
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;
Nรผรผd vaadake hinnatabeli sisu:
SELECT * from price;
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');
Saate teha tabelist pรคringu, et kontrollida, kas kirjed sisestati edukalt:
SELECT * FROM book;
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);
Kontrollime, kas kirjete loomine รตnnestus:
SELECT * FROM price;
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:
Muudame id-ga 1 raamatu hinna 200-lt 250-le:
UPDATE price SET price = 250 WHERE id = 1;
Kรคsk toimis edukalt. Nรผรผd saate tabelist kรผsida, kas muudatus toimus:
รlaltoodud ekraanipilt nรคitab, et muudatus on rakendatud. Vaatleme tabelit Raamat jรคrgmiste kirjetega:
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;
Kontrollige, kas muudatus on rakendatud:
ร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:
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;
Nรผรผd kรผsige tabelist, kas muudatus tehti edukalt:
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:
Peame tabelist viimase kirje kustutama. Selle ID on 6 ja hind 280. Kustutame kirje:
DELETE FROM price WHERE id = 6;
Kรคsk toimis edukalt. Kรผsige tabelist, kas kustutamine รตnnestus:
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:
Oletame, et peame nรคgema kirjeid, mille hind on alla 250. Saame kรคivitada jรคrgmise kรคsu:
SELECT * FROM price WHERE price < 250;
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;
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;
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:
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%';
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';
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%';
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:
Kontrollime kirjet, milles hind on nagu 1_0. Kรคivitame jรคrgmise kรคsu:
SELECT * FROM price WHERE price LIKE '1_0';
Ta on tagastanud rekordi, mille hind on 190. Vรตime proovida ka teist mustrit:
SELECT * FROM price WHERE price LIKE '_2_';
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:
Leiame kรตik kirjed, mille hind ei alga 2-ga:
SELECT * FROM price WHERE price NOT LIKE '2%';
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:
Kรคivitage tabeli vastu jรคrgmine kรคsk:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
ร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;
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;
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:
Kui valime tabelist hinnaveeru, saame jรคrgmise tulemuse:
SELECT price FROM Price;
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;
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;
See klausel aitab teil andmebaasitabelist tuua ainult รผhe veeru. Nรคiteks:
SELECT price FROM Price;
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;
;
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();
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;
;
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);
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 ;
Seejรคrel saame รผlaltoodud funktsiooni kutsuda jรคrgmiselt:
select sumFunc(1000);
Kรคsk tagastab jรคrgmise:
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:
Hindade tabelis on jรคrgmised andmed:
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:
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:
ร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:
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.






































































