MariaDB oppitunti

Mikรค on MariaDB?

MariaDB on haarukka MySQL tietokannan ohjausjรคrjestelmรค. Sen ovat luoneet sen alkuperรคiset kehittรคjรคt. Tรคmรค DBMS-tyรถkalu tarjoaa tietojenkรคsittelyominaisuudet sekรค pienten ettรค yritysten tehtรคviin.

MariaDB on parannettu versio MySQL. Siinรค on lukuisia sisรครคnrakennettuja tehokkaita ominaisuuksia ja monia kรคytettรคvyyttรค, tietoturva- ja suorituskykyparannuksia, joita et lรถydรค MySQL.

Tรคssรค ovat ominaisuudet MariaDB:

  • Se toimii GPL-, BSD- tai LGPL-lisensseillรค.
  • MariaDB tukee suosittua ja tavallista kyselykieltรค.
  • Sen mukana tulee monia tallennusmoottoreita, mukaan lukien tehokkaat, jotka voidaan integroida muihin relaatiotietokannan hallintajรคrjestelmiin.
  • Se tarjoaa Galera-klusteriteknologian.
  • MariaDB tukee PHP:tรค, suosittua web-kehityskieltรค.
  • MariaDB voi toimia eri kรคyttรถjรคrjestelmissรค, ja se tukee lukuisia ohjelmointikieliรค.
  • MariaDB mukana tulee lisรคkomentoja, jotka eivรคt ole kรคytettรคvissรค MySQL. MySQL sisรคltรครค ominaisuuksia, jotka vaikuttavat negatiivisesti DBMS:n suorituskykyyn. Tรคllaiset ominaisuudet on korvattu MariaDB.

MariaDB vs. MySQL

Alla on joitain keskeisiรค eroja MariaDB vs MySQL

Parametri MariaDB MySQL
Lisรครค vaihtoehtoja varastomoottoreille MariaDB siinรค on 12 uutta tallennusmoottoria, joita et lรถydรค MySQL. Siinรค on vรคhemmรคn sรคilytysvaihtoehtoja verrattuna MariaDB.
Nopeuden parannuksia MariaDB osoittaa parempaa nopeutta verrattuna MySQL. Siinรค on lukuisia ominaisuuksia nopeuden optimoimiseksi. Tรคllaisia โ€‹โ€‹ominaisuuksia ovat muun muassa johdetut nรคkymรคt/taulukot, alikyselyt, suorituksen hallinta, levyn kรคyttรถ ja optimoijan ohjaus. MySQL on hitaampi nopeus verrattuna MariaDB. Se luottaa vain muutamiin nopeuden optimointiominaisuuksiin, esimerkiksi hash-indekseihin.
Nopeampi vรคlimuisti / indeksit Muistitallennusmoottorilla MariaDB, INSERT-lause voidaan tรคyttรครค 24% standardista MySQL. Muistin tallennusmoottori MySQL on hitaampi verrattuna siihen MariaDB.
Suurempi ja nopeampi yhteysallas MariaDB mukana tulee kehittynyt sรคiepooli, joka pystyy toimimaan nopeammin ja tukee jopa 200,000 XNUMX+ yhteyttรค. Tarjoama lanka-allas MySQL ei voi tukea enintรครคn 200,000 XNUMX yhteyttรค kerrallaan.
Parannettu replikointi In MariaDB, replikointi voidaan tehdรค turvallisemmin ja nopeammin. Pรคivitykset voidaan myรถs tehdรค 2x nopeammin kuin perinteiset MySQL. MySQLYhteisรถn versio mahdollistaa staattisen mรครคrรคn sรคikeitรค yhdistรคmisen. MySQLYrityssuunnitelman mukana tulee lankaominaisuudet.
Uudet ominaisuudet/laajennukset MariaDB mukana tulee uusia ominaisuuksia ja laajennuksia, mukaan lukien JSON-, WITH- ja KILL-lausekkeet. Uusi MariaDB ominaisuuksia ei ole tarjolla MySQL.
Puuttuvat ominaisuudet MariaDB siitรค puuttuu joitain palvelun tarjoamia ominaisuuksia MySQL yritysversio. Tรคmรคn korjaamiseksi se tarjoaa vaihtoehtoisia avoimen lรคhdekoodin laajennuksia. Siten, MariaDB kรคyttรคjรคt voivat nauttia samoista toiminnoista kuin MySQL Enterprise Editionin kรคyttรคjรคt. Enterprise Edition of MySQL kรคyttรครค omaa koodia. Vain kรคyttรคjรคt MySQL Enterprise Editionilla on pรครคsy tรคhรคn.

Kuinka asentaa MariaDB

Asenna itsenรคisenรค sovelluksena

Voidakseen kรคyttรครค MariaDB, sinun on asennettava se tietokoneellesi.

Asennus voidaan tehdรค noudattamalla alla olevia vaiheita:

Vaihe 1) Avaa URL-osoitteen alta
Lataa asennustiedosto linkistรค https://downloads.mariadb.org/

Vaihe 2) Double napsauta tiedostoa aloittaaksesi asennuksen
Kun lataus on valmis, avaa tiedosto

Vaihe 3) Napsauta Seuraava-painiketta
Napsauta avautuvassa ikkunassa Seuraava-painiketta:

Asennus MariaDB

Vaihe 4) Hyvรคksy lisenssisopimus
Napsauta sitten Seuraava-painiketta:

Asennus MariaDB

Vaihe 5) Valita MariaDB Server
Valitse asennettavat ominaisuudet ja napsauta Seuraava

Asennus MariaDB

Vaihe 6) Anna salasana
Seuraavassa ikkunassa sinun on vaihdettava pรครคkรคyttรคjรคn salasana.

  1. Anna salasana ja vahvista se kirjoittamalla sama salasana uudelleen. Jos haluat sallia pรครคsyn etรคkoneista, aktivoi tarvittava valintaruutu.
  2. Kun olet valmis, napsauta Seuraava-painiketta.

Asennus MariaDB

Vaihe 7) Kirjoita nimi ja valitse portin numero
Kirjoita seuraavassa ikkunassa ilmentymรคn nimi, valitse portin numero ja aseta tarvittava koko. Napsauta Seuraava-painiketta:

Asennus MariaDB

Vaihe 8) Napsauta Seuraava
Napsauta seuraavassa ikkunassa yksinkertaisesti Seuraava-painiketta.

Vaihe 9) Napsauta Asenna
Kรคynnistรค asennus napsauttamalla Asenna-painiketta.

Asennus MariaDB

Vaihe 10) Edistymispalkki nรคytetรครคn
Nรคkyviin tulee edistymispalkki, joka nรคyttรครค asennuksen edistymisen:

Asennus MariaDB

Vaihe 11) Napsauta Valmis-painiketta
Kun asennus on valmis, nรคet Valmis-painikkeen. Napsauta painiketta sulkeaksesi ikkunan:

Asennus MariaDB

Vaihe 12) Onneksi!
Sinulla on nyt MariaDB asennettu tietokoneeseen.

Tyรถskentely komentokehotteen kanssa

Nyt kun sinulla on MariaDB asennettuna tietokoneellesi, sinun on aika kรคynnistรครค se ja alkaa kรคyttรครค sitรค. Tรคmรค voidaan tehdรค kautta MariaDB komentokehote.

Noudata seuraavia ohjeita:

Vaihe 1) Napsauta Kรคynnistรค, valitse Kaikki ohjelmat ja napsauta sitten MariaDB...

Vaihe 2) Valitse MariaDB Komentorivi.

MariaDB Komentorivi

Vaihe 3) MariaDB komentokehote kรคynnistyy. Nyt on aika kirjautua sisรครคn. Sinun tulee kirjautua sisรครคn pรครคkรคyttรคjรคnรค ja salasanalla, jonka mรครคritit asennuksen aikana MariaDB. Kirjoita komentokehotteeseen seuraava komento:

MySQL -u root -p

Vaihe 4) Anna salasana ja paina paluunรคppรคintรค. Sinun tulee kirjautua sisรครคn alla olevan kuvan mukaisesti:

MariaDB Komentorivi

Olet nyt kirjautunut sisรครคn MariaDB.

Tietotyypit

MariaDB tukee seuraavia tietotyyppejรค:

  • Merkkijonotietotyypit
  • Numeeriset tietotyypit
  • Pรคivรคmรครคrรค/aika -tietotyypit
  • Suuret objektitietotyypit

Merkkijonotietotyypit

Nรคitรค ovat seuraavat:

String tietotyyppi Tuotetiedot
merkki (koko) Koko ilmaisee tallennettavien merkkien mรครคrรคn. Se tallentaa enintรครคn 255 merkkiรค. Kiinteรคpituiset kielet.
varchar (koko) Koko ilmaisee tallennettavien merkkien mรครคrรคn. Se tallentaa enintรครคn 255 merkkiรค. Vaihtuvapituiset merkkijonot.
tekstin koko) Koko ilmaisee tallennettavien merkkien mรครคrรคn. Se tallentaa enintรครคn 255 merkkiรค. Kiinteรคpituiset kielet.
binรครคri (koko) Koko ilmaisee tallennettavien merkkien mรครคrรคn. Se tallentaa enintรครคn 255 merkkiรค. Kiinteรคn kokoiset jouset.

Numeeriset tietotyypit

Niihin kuuluvat seuraavat:

Numeeriset tietotyypit Tuotetiedot
bit Hyvin pieni kokonaislukuarvo, joka vastaa arvoa tinyint(1). Etumerkilliset arvot vaihtelevat vรคlillรค -128 ja 127. Etumerkittรถmรคt arvot vaihtelevat vรคlillรค 0 ja 255.
int(m) Normaali kokonaislukuarvo. Etumerkilliset arvot vaihtelevat vรคlillรค -2147483648 ja 2147483647. Etumerkittรถmรคt arvot vaihtelevat vรคlillรค 0 ja 4294967295.
kellua(m, d) Liukulukuluku yhdellรค tarkkuudella.
double(m,d) Liukuluku kaksinkertaisella tarkkuudella.
kellua (p) Liukulukuluku.

Pรคivรคmรครคrรค/aika tietotyypit

Nรคitรค ovat seuraavat:

Pรคivรคmรครคrรค/aika Tietotyyppi Tuotetiedot
Pรคivรคmรครคrรค Nรคytetรครคn muodossa "vvvv-kk-pp". Arvot vaihtelevat vรคlillรค '1000-01-01' ja '9999-12-31'.
datetime Nรคytetรครคn muodossa 'vvvv-kk-pp tt:mm:ss'. Arvot vaihtelevat vรคlillรค '1000-01-01 00:00:00' ja '9999-12-31 23:59:59'.
aikaleima (m) Nรคytetรครคn muodossa 'vvvv-kk-pp tt:mm:ss'. Arvot vaihtelevat vรคlillรค '1970-01-01 00:00:01' utc ja '2038-01-19 03:14:07' utc.
Aika: Nรคytetรครคn muodossa 'hh:mm:ss'. Arvot vaihtelevat vรคlillรค '-838:59:59' ja '838:59:59'.

Large Object Datatypes (LOB)

Niihin kuuluvat seuraavat:

Suuren objektin tietotyyppi Tuotetiedot
tinyblob Sen enimmรคiskoko on 255 tavua.
mรถykky (koko) Ottaa enimmรคiskoon 65,535 XNUMX tavua.
mediumblob Sen enimmรคiskoko on 16,777,215 tavua.
pitkรค teksti Sen enimmรคiskoko on 4 Gt.

Luo tietokanta ja taulukot

Luodaksesi uuden tietokannan sisรครคn MariaDB, sinulla pitรคisi olla erityisiรค oikeuksia, jotka myรถnnetรครคn vain pรครคkรคyttรคjรคlle ja jรคrjestelmรคnvalvojille.

Luodaksesi uuden tietokannan, sinun tulee kรคyttรครค CREATE DATABASE -komentoa, joka kรคyttรครค seuraavan syntaksin:

CREATE DATABASE DatabaseName;

Tรคssรค tapauksessa sinun on luotava tietokanta ja annettava sille nimi Demo.

Aloita MariaDB komentokehote ja kirjaudu sisรครคn pรครคkรคyttรคjรคnรค kirjoittamalla seuraava komento:

mysql -u root -p

Kirjoita root-salasana ja paina paluunรคppรคintรค. Sinut kirjataan sisรครคn.

Suorita nyt seuraava komento:

CREATE DATABASE Demo;

Luo tietokanta ja taulukot sisรครคn MariaDB

Olet sitten luonut tietokannan nimeltรค Demo. Sinun on hyvรค varmistaa, onko tietokanta luotu onnistuneesti vai ei. Sinun tarvitsee vain nรคyttรครค luettelo kรคytettรคvissรค olevista tietokannoista suorittamalla seuraava komento:

SHOW DATABASES;

Luo tietokanta ja taulukot sisรครคn MariaDB

Yllรค oleva tulos osoittaa, ettรค Demo-tietokanta on osa luetteloa, joten tietokanta luotiin onnistuneesti.

MariaDB Valitse Tietokanta

Jotta voit kรคyttรครค tai tyรถstรครค tiettyรค tietokantaa, sinun on valittava se kรคytettรคvissรค olevien tietokantojen luettelosta. Kun olet valinnut tietokannan, voit suorittaa tehtรคviรค, kuten luoda tietokannassa taulukoita.

Tietokannan valitsemiseen tulee kรคyttรครค USE-komentoa. Se ottaa alla olevan syntaksin:

USE database_name;

Sinun on kรคytettรคvรค Demo-tietokantaa. Voit valita sen suorittamalla seuraavan komennon:

USE Demo;

Luo tietokanta ja taulukot sisรครคn MariaDB

Yllรค oleva kuva osoittaa, ettรค MariaDB komentokehote on muuttunut nonesta valitun tietokannan nimeksi.

Nyt voit jatkaa ja luoda taulukoita Demo-tietokannassa.

MariaDB โ€“ Luo taulukko

Jotta voit luoda taulukon, sinun on valittava tietokanta. Taulukko voidaan luoda CREATE TABLE -kรคskyllรค. Tรคssรค on komennon syntaksi:

CREATE TABLE tableName (columnName columnType);

Voit asettaa yhden sarakkeista ensisijaiseksi avaimeksi. Tรคmรค sarake ei saa sallia nolla-arvoja.

Luomme Demo-tietokantaan kaksi taulukkoa, Kirja- ja Hintataulukot. Jokaisessa taulukossa on kaksi saraketta.

Aloitetaan luomalla Kirja-taulukko, jossa on kaksi saraketta, id ja nimi. Suorita seuraava komento:

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

Luo tietokanta ja taulukot sisรครคn MariaDB

PRIMARY KEY -rajoitusta on kรคytetty id-sarakkeen asettamiseen taulukon ensisijaiseksi avaimeksi. AUTO_INCREMENT-ominaisuus lisรครค id-sarakkeen arvoja 1:llรค automaattisesti jokaiselle taulukkoon lisรคtylle uudelle tietueelle. Kaikki sarakkeet eivรคt salli nolla-arvoja.

Luo nyt toinen taulukko, hintataulukko:

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

Luo tietokanta ja taulukot sisรครคn MariaDB

Id-sarake on asetettu taulukon ensisijaiseksi avaimeksi.

Nรคytetรครคn taulukot

Nyt kun olet luonut kaksi taulukkoa, sinun on hyvรค tarkistaa, onko taulukoiden luominen onnistunut vai ei. Voit nรคyttรครค tietokannan sisรคltรคmien taulukoiden luettelon suorittamalla seuraavan komennon:

SHOW TABLES;

Luo tietokanta ja taulukot sisรครคn MariaDB

Yllรค oleva kuvakaappaus osoittaa, ettรค kaksi taulukkoa luotiin onnistuneesti Demo-tietokannassa.

Nรคytetรครคn taulukon rakenne

Jos haluat nรคhdรค minkรค tahansa tietyn taulukon rakenteen, voit kรคyttรครค DESCRIBE-komentoa, josta kรคytetรครคn yleensรค lyhennettรค DESC. Se vaatii seuraavan syntaksin:

DESC TableName;

Jos haluat esimerkiksi nรคhdรค Book-nimisen taulukon rakenteen, voit suorittaa seuraavan komennon;

DESC Book;

Luo tietokanta ja taulukot sisรครคn MariaDB

Taulukossa on kaksi saraketta. Voit tarkastella hintataulukon rakennetta suorittamalla seuraavan komennon:

DESC Price;

Luo tietokanta ja taulukot sisรครคn MariaDB

CRUD ja lausekkeet

INSERT

Tietojen lisรครคminen kohtaan a MariaDB taulukossa, sinun tulee kรคyttรครค INSERT INTO -kรคskyรค. Tรคmรค komento ottaa alla olevan syntaksin:

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

Yllรค oleva syntaksi osoittaa, ettรค sinun on mรครคritettรคvรค taulukon sarakkeet, joihin haluat lisรคtรค tietoja, sekรค tiedot, jotka sinun on lisรคttรคvรค.

Lisรคtรครคn kirjataulukkoon tietue:

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

CRUD ja Clauses-INSERT

Olet lisรคnnyt taulukkoon yhden tietueen. Lisรครค tietue Hintataulukkoon:

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

CRUD ja Clauses-INSERT

Tietue on luotu.

VALITSE

SELECT-kรคsky auttaa meitรค tarkastelemaan tai nรคkemรครคn tietokantataulukon sisรคllรถn. Jos haluat nรคhdรค esimerkiksi Kirja-taulukon sisรคllรถn, sinun on suoritettava seuraava komento:

SELECT * from book;

CRUD ja Clauses-INSERT

Katso nyt hintataulukon sisรคltรถ:

SELECT * from price;

CRUD ja Clauses-INSERT

Useiden tietueiden lisรครคminen

On mahdollista lisรคtรค useita tietueita a MariaDB pรถytรครคn menossa. Osoita tรคmรค suorittamalla seuraava esimerkki:

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

Useiden tietueiden lisรครคminen

Voit tarkistaa taulukosta, onko tietueet lisรคtty onnistuneesti:

SELECT * FROM book;

Useiden tietueiden lisรครคminen

Tietueet lisรคttiin onnistuneesti. Lisรครค useita tietueita Hintataulukkoon suorittamalla tรคmรค esimerkki:

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

Useiden tietueiden lisรครคminen

Varmistetaan, onko tietueiden luominen onnistunut:

SELECT * FROM price;

Useiden tietueiden lisรครคminen

Pร„IVITYS

UPDATE-komento auttaa meitรค muuttamaan tai muokkaamaan tietueita, jotka on jo lisรคtty taulukkoon. Voit yhdistรครค sen WHERE-lauseeseen mรครคrittรครคksesi pรคivitettรคvรคn tietueen. Tรคssรค on syntaksi:

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

UPDATE-komento voidaan myรถs yhdistรครค lauseisiin, kuten SET, WHERE, LIMIT ja ORDER BY. Nรคet tรคmรคn pian:

Harkitse taulukkoa nimeltรค Hinta, jossa on seuraavat tietueet:

CRUD ja Clauses-UPDATE

Muutetaan kirjan hintaa tunnuksella 1 200:sta 250:een:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD ja Clauses-UPDATE

Komento suoritettiin onnistuneesti. Voit nyt kysyรค taulukosta, onko muutos tapahtunut:

CRUD ja Clauses-UPDATE

Yllรค oleva kuvakaappaus osoittaa, ettรค muutos on toteutettu. Harkitse taulukkokirjaa, jossa on seuraavat tietueet:

CRUD ja Clauses-UPDATE

Muutetaan Kirja-nimisen kirjan nimi muotoon MariaDB Kirja 1. Huomaa, ettรค kirjan tunnus on 1. Tรคssรค on komento tรคhรคn:

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

CRUD ja Clauses-UPDATE

Tarkista, onko muutos toteutettu:

CRUD ja Clauses-UPDATE

Yllรค oleva kuvakaappaus osoittaa, ettรค muutos on toteutettu onnistuneesti.

Yllรค olevissa esimerkeissรค olemme muuttaneet vain yhtรค saraketta kerrallaan. On kuitenkin mahdollista, ettรค voimme muuttaa useita sarakkeita kerralla. Osoittakaamme tรคmรค esimerkin avulla.

Kรคytรคmme Hintataulukkoa seuraavilla tiedoilla:

CRUD ja Clauses-UPDATE

Muutetaan sekรค kirjan tunnus ettรค hinta tunnuksella 5. Muutamme sen tunnukseksi 6 ja hinnaksi 6. Suorita seuraava komento:

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

  CRUD ja Clauses-UPDATE

Tee nyt kysely taulukosta tarkistaaksesi, onko muutos tehty onnistuneesti:

CRUD ja Clauses-UPDATE

Muutos tehtiin onnistuneesti.

Poista

Kรคytรคmme DELETE-komentoa, kun meidรคn on poistettava yksi tai useampi tietue taulukosta. Tรคssรค on komennon syntaksi:

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

Harkitse hintataulukkoa, jossa on seuraavat tietueet:

CRUD ja Clauses-DELETE

Meidรคn on poistettava viimeinen tietue taulukosta. Sen tunnus on 6 ja hinta 280. Poistetaan tietue:

DELETE FROM price
WHERE id = 6;   

CRUD ja Clauses-DELETE

Komento suoritettiin onnistuneesti. Kysytรครคn taulukosta, onnistuiko poistaminen:

CRUD ja Clauses-DELETE

Tulos osoittaa, ettรค tietueen poistaminen onnistui.

Missรค

WHERE-lause auttaa meitรค mรครคrittรคmรครคn tarkan sijainnin, jossa meidรคn on tehtรคvรค muutos. Sitรค kรคytetรครคn yhdessรค kรคskyjen kanssa, kuten INSERT, SELECT, UPDATE ja DELETE. Harkitse hintataulukkoa, jossa on seuraavat tiedot:

CRUD ja lausekkeet - Missรค

Oletetaan, ettรค meidรคn tรคytyy nรคhdรค tietueet, joissa hinta on alle 250. Voimme suorittaa seuraavan komennon:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD ja lausekkeet - Missรค

Kaikki tietueet, joissa hinta on alle 250, on palautettu.

WHERE-lause voidaan yhdistรครค AND-lauseeseen. Oletetaan, ettรค meidรคn tรคytyy nรคhdรค kaikki hintataulukon tietueet, joissa hinta on alle 250 ja id on yli 3. Voimme suorittaa seuraavan komennon:

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

CRUD ja lausekkeet - Missรค

Vain yksi levy on palautettu. Syynรค on, ettรค sen on tรคytettรคvรค kaikki mรครคritellyt ehdot, eli id โ€‹โ€‹yli 3 ja hinta alle 250. Jos jotain nรคistรค ehdoista rikotaan, tietuetta ei palauteta.

Lause voidaan yhdistรครค myรถs OR-komentoon. Korvataan AND edellisessรค komennossa OR ja katsotaan millainen tulos saamme:

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

CRUD ja lausekkeet - Missรค

Saamme nyt 2 tietuetta yhden sijasta. Tรคmรค johtuu siitรค, ettรค kelpoisuustietueen on tรคytettรคvรค vain yksi mรครคritetyistรค ehdoista.

Pitรครค

Tรคtรค lauseketta kรคytetรครคn mรครคrittรคmรครคn tietomalli kรคytettรคessรค taulukkotietoja, joissa tarkka vastaavuus on vรคlttรคmรคtรถn. Se voidaan yhdistรครค INSERT-, UPDATE-, SELECT- ja DELETE-kรคskyjen kanssa.

Sinun tulee vรคlittรครค etsimรคsi datamalli lauseeseen, ja se palauttaa joko tosi tai epรคtosi. Tรคssรค ovat jokerimerkit, joita voidaan kรคyttรครค lauseen kanssa:

  • %: vastaa joko 0 tai useampia merkkiรค.
  • _: yhden merkin vastaavuuteen.

Tรคssรค on LIKE-lauseen syntaksi:

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

Osoitetaan, kuinka lauseketta kรคytetรครคn % jokerimerkillรค. Kรคytรคmme Kirja-taulukkoa seuraavilla tietueilla:

CRUD ja lausekkeet - Missรค

Meidรคn on nรคhtรคvรค kaikki tietueet, joissa nimi alkaa M:llรค. Voimme suorittaa seuraavan komennon:

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

 CRUD ja lausekkeet - Missรค

Kaikki tietueet on palautettu, koska niiden nimet alkavat kirjaimella M. Jos haluat nรคhdรค kaikki nimet, jotka pรครคttyvรคt numeroon 4, voit suorittaa seuraavan komennon:

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

CRUD ja lausekkeet - Missรค

Vain yksi nimi on palautettu, koska se on ainoa, joka tรคyttรครค ehdon.

Voimme myรถs ympรคrรถidรค hakukuvion jokerimerkillรค:

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

CRUD ja lausekkeet - Missรค

Muuta kuin % jokerimerkkiรค, LIKE-lausetta voidaan kรคyttรครค yhdessรค jokerimerkin _ kanssa. Tรคmรค on alaviivan yleismerkki, ja se etsii vain yhtรค merkkiรค.

Tyรถstetรครคn hintataulukkoa seuraavilla tietueilla:

CRUD ja lausekkeet - Missรค

Tarkastetaan tietue, jossa hinta on kuin 1_0. Suoritamme seuraavan komennon:

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

CRUD ja lausekkeet - Missรค

Se on palauttanut tietueen, jossa hinta on 190. Voimme myรถs kokeilla toista mallia:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD ja lausekkeet - Missรค

Voimme kรคyttรครค LIKE-lausetta yhdessรค NOT-operaattorin kanssa. Tรคmรค palauttaa kaikki tietueet, jotka eivรคt tรคytรค mรครคritettyรค mallia. Esimerkiksi:

Kรคytรคmme Hintataulukkoa seuraavilla tietueilla:

CRUD ja lausekkeet - Missรค

Etsitรครคn kaikki tietueet, joissa hinta ei ala kahdella:

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

CRUD ja lausekkeet - Missรค

Vain yksi tietue ei tรคytรค mรครคritettyรค mallia.

Jรคrjestys

Tรคmรค lauseke auttaa meitรค lajittelemaan tietueemme joko nousevassa tai laskevassa jรคrjestyksessรค. Kรคytรคmme sitรค SELECT-lauseen kanssa, kuten alla:

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

Voimme kรคyttรครค tรคtรค lauseketta lisรครคmรคttรค ASC- tai DESC-osaa. Esimerkiksi:

Kรคytรคmme hintataulukkoa seuraavilla tietueilla:

CRUD ja lausekkeet - Missรค

Suorita seuraava komento taulukkoa vastaan:

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

CRUD ja lausekkeet - Missรค

Yllรค olevassa komennossa olemme tilannut hinnan mukaan. Levyt on tilattu hinnoilla nousevassa jรคrjestyksessรค. Tรคmรค tarkoittaa, ettรค kun emme mรครคritรค jรคrjestystรค, lajittelu tapahtuu oletusarvoisesti nousevassa jรคrjestyksessรค.

Suoritetaan lause DESC-vaihtoehdolla:

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

 CRUD ja lausekkeet - Missรค

Tietueet on lajiteltu hinnan mukaan laskevaan jรคrjestykseen, kuten olemme mรครคrittรคneet.

Kรคytรคmme ORDER BY -lausetta yhdessรค ASC-attribuutin kanssa:

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

 CRUD ja lausekkeet - Missรค

Levyt on tilattu, mutta hinnat nousevassa jรคrjestyksessรค. Tรคmรค on samanlainen kuin silloin, kun kรคytรคmme ORDER BY -lausetta ilman ASC- tai DESC-attribuutteja.

DISTINCT

Tรคmรค lauseke auttaa meitรค poistamaan kaksoiskappaleet valittaessa tietueita taulukosta. Tรคmรค tarkoittaa, ettรค se auttaa saamaan ainutlaatuisia tietueita. Sen syntaksi on annettu alla:

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

Tรคmรคn osoittamiseksi kรคytรคmme hintataulukkoa, jossa on seuraavat tiedot:

CRUD ja Clauses-DISTINCT

Kun valitsemme hintasarakkeen taulukosta, saamme seuraavan tuloksen:

SELECT price FROM Price;

CRUD ja Clauses-DISTINCT

Meillรค on kaksi tietuetta, joiden hinta on 250, mikรค luo kaksoiskappaleen. Meillรค on oltava vain ainutlaatuisia tietueita. Voimme suodattaa nรคmรค kรคyttรคmรคllรค DISTINCT-lausetta alla esitetyllรค tavalla:

SELECT DISTINCT price FROM Price;

CRUD ja Clauses-DISTINCT

Meillรค ei nyt ole kaksoiskappaleita yllรค olevassa tulosteessa.

alkaen

FROM-lause, jota kรคytetรครคn tietojen hakemiseen tietokantataulukosta. Se voi myรถs auttaa pรถytien yhdistรคmisessรค. Tรคssรค on komennon syntaksi:

SELECT columnNames FROM tableName; 

Nรคet kirjataulukon sisรคllรถn suorittamalla seuraavan komennon:

SELECT * FROM price;

CRUD ja lausekkeet-From

Lause voi auttaa sinua hakemaan vain yhden sarakkeen tietokantataulukosta. Esimerkiksi:

SELECT price FROM Price;

CRUD ja lausekkeet-From

Lisรคtehtรคvรคt

Tallennettu menettely

Menettely on a MariaDB ohjelma, jolle voit siirtรครค parametreja. Proseduuri ei palauta arvoja. Proseduurin luomiseksi kรคytรคmme CREATE PROCEDURE -komentoa.

Proseduurin luomisen ja kutsumisen osoittamiseksi luomme proseduurin nimeltรค myProcedure(), joka auttaa meitรค valitsemaan nimisarakkeen kirjataulukosta. Tรคssรค on menettely:

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

Edistyneet tehtรคvรคt -tallennettu menettely

Menettely on luotu. Olemme yksinkertaisesti sisรคllyttรคneet SELECT-kรคskyn proseduurin BEGIN- ja END-lauseisiin.

Nyt voimme kutsua menettelyรค sen nimellรค alla olevan kuvan mukaisesti:

CALL myProcedure();

Edistyneet tehtรคvรคt -tallennettu menettely

Toimenpide palauttaa kutsutaulukon nimisarakkeen.

Voimme luoda prosessin, joka ottaa parametrin. Meidรคn on esimerkiksi valittava kirjan nimi ja suodatettava kรคyttรคmรคllรค kirjatunnusta. Voimme luoda seuraavan menettelyn tรคtรค varten:

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

Edistyneet tehtรคvรคt -tallennettu menettely

Yllรค olemme luoneet proseduurin nimeltรค myProcedure2(). Tรคmรค menettely ottaa yhden kokonaislukuparametrin nimeltรค book_id, joka on sen kirjan tunnus, jonka nimen meidรคn tรคytyy nรคhdรค. Jos haluat nรคhdรค kirjan nimen, jonka tunnus on 3, voimme kutsua menettelyn seuraavasti:

CALL myProcedure2(3);

Edistyneet tehtรคvรคt -tallennettu menettely

Toiminto

Toisin kuin proseduurit, meidรคn on vรคlitettรคvรค parametrit funktioille ja funktion on palautettava arvo. Luodaksesi toiminnon sisรครคn MariaDB, kรคytรคmme CREATE FUNCTION -kรคskyรค. Lauseke kรคyttรครค seuraavan syntaksin:

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;

Yllรค olevat parametrit on kuvattu alla:

Parametri Tuotetiedot
DEFINER-lauseke Tรคmรค parametri on valinnainen. Jos et mรครคritรค sitรค, mรครคrittรคjรคstรค tulee kรคyttรคjรค, joka loi funktion. Jos on tarpeen mรครคrittรครค toinen mรครคrittรคjรค, sisรคllytรค DEFINER-lause, jossa kรคyttรคjรคn_nimi on funktion mรครคrittรคjรค.
funktion_nimi Nimi, joka mรครคritetรครคn tรคlle toiminnolle kohdassa MariaDB.
parametri Funktiolle vรคlitetyt parametrit. Funktiota luotaessa kaikkia parametreja kรคsitellรครคn nimellรค IN-parametrit (ei OUT/INOUT-parametreja).
palautus_tietotyyppi Funktion palautusarvon tietotyyppi.
KIELI SQL Se vaikuttaa siirrettรคvyyteen, mutta ei toimintaan.
DETERMINISTINEN Funktio palauttaa yhden tuloksen vain, jos sille annetaan useita parametreja.
EI DETERMINISTINEN On mahdollista, ettรค funktio palauttaa erilaisen tuloksen, kun sille annetaan useita parametreja.
SISร„LTร„ร„ SQL:รครค tiedottaa MariaDB ettรค tรคmรค funktio sisรคltรครค SQL:n. Tietokanta ei tarkista, onko tรคmรค totta.
EI SQL:รครค Tรคtรค lauseketta ei kรคytetรค, eikรค sillรค ole vaikutusta toimintaasi.
LUKEE SQL-TIEDOT Kertoo MariaDB ettรค tรคmรค funktio kรคyttรครค SELECT-kรคskyjรค tietojen lukemiseen, mutta se ei muokkaa tietoja.
MUOKAA SQL-TIEDOT Kertoo MariaDB ettรค tรคmรค toiminto kรคyttรครค INSERT-, DELETE-, UPDATE- ja muita asetuksia DDL lausekkeita SQL-tietojen muokkaamiseen.
ilmoitus-osio Tรคssรค on ilmoitettava paikalliset muuttujat.
suoritettava-osio Toimintokoodi tulee lisรคtรค tรคhรคn.

Tรคssรค on esimerkki MariaDB toiminto:

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 ;

Toiminto sisรครคn MariaDB

Voimme sitten kutsua yllรค olevaa funktiota seuraavasti:

select sumFunc(1000);

Komento palauttaa seuraavan:

Toiminto sisรครคn MariaDB

Kun olet tehnyt toiminnon, sinun on hyvรค poistaa se. Tรคmรค on helppoa, koska sinun tarvitsee vain kutsua DROP FUNCTION -kรคsky, joka kรคyttรครค seuraavan syntaksin:

DROP FUNCTION function_name;

Esimerkiksi myFunc-nimisen toiminnon pudottamiseksi voimme suorittaa seuraavan komennon:

DROP FUNCTION myFunc;

LIITY

Kun haluat hakea tietoja useammasta kuin yhdestรค taulukosta kerralla, kรคytรค MariaDB LIITTYY. Tรคmรค tarkoittaa, ettรค a LIITY toimii kahdella tai useammalla pรถydรคllรค. Seuraavat kolme JOINS-tyyppiรค ovat tuettuja MariaDB:

  • SISร„INEN/YKSINKERTAINEN LIITTYMINEN
  • LEFT OUTTER JOIN/LEFT JOIN
  • RIGHT OUTTER JOIN / RIGHT JOIN

Keskustellaan niistรค yksitellen:

INNER JOIN

Sisรคliitos palauttaa kaikki rivit taulukoista, joissa liitosehto on tosi. Sen syntaksi on seuraava:

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

Esimerkiksi:

Kรคytรคmme kahta pรถytรครคmme, kirjoja ja kirjaa.

Kirjataulukossa on seuraavat tiedot:

INNER JOIN

Hintataulukossa on seuraavat tiedot:

INNER JOIN

Tarkoituksena on yhdistรครค Kirja-taulukon nimisarake ja Hintataulukon hintasarake yhdeksi taulukoksi. Tรคmรค on mahdollista sisรคliitoksella, kuten alla on osoitettu:

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

Komento palauttaa seuraavan:

INNER JOIN

LEFT OUTTER JOIN

Tรคmรค liitos palauttaa kaikki rivit vasemmasta taulukosta ja vain rivit, joissa liitosehto on tosi toisesta taulukosta. Sen syntaksi on seuraava:

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

ULKOAvainsana on sijoitettu hakasulkeisiin, koska se on valinnainen.

Esimerkiksi:

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

Komento palauttaa seuraavan:

LEFT OUTTER JOIN

Yllรค olevan taulukon viimeisellรค tietueella ei ole vastaavaa arvoa vasemmalla. Siksi se on korvattu NULL:lla.

OIKEA ULKOLIITTYMINEN

Tรคmรค liitos palauttaa kaikki rivit oikeanpuoleisesta taulukosta ja vain rivit, joissa liitosehto on tosi toisesta taulukosta. Sen syntaksi on seuraava:

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

ULKOAvainsana on sijoitettu hakasulkeisiin, koska se on valinnainen.

Esimerkiksi:

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

Komento palauttaa seuraavan:

OIKEA ULKOLIITTYMINEN

Syynรค on se, ettรค kaikki oikeanpuoleisen taulukon rivit yhdistettiin toisen taulukon riveihin. Jos jotkin rivit eivรคt tรคsmรครค, ensimmรคisessรค sarakkeessa olisi NULL-arvot.

Tiivistรค tรคmรค viesti seuraavasti: