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:
Vaihe 4) Hyvรคksy lisenssisopimus
Napsauta sitten Seuraava-painiketta:
Vaihe 5) Valita MariaDB Server
Valitse asennettavat ominaisuudet ja napsauta Seuraava
Vaihe 6) Anna salasana
Seuraavassa ikkunassa sinun on vaihdettava pรครคkรคyttรคjรคn salasana.
- Anna salasana ja vahvista se kirjoittamalla sama salasana uudelleen. Jos haluat sallia pรครคsyn etรคkoneista, aktivoi tarvittava valintaruutu.
- Kun olet valmis, napsauta Seuraava-painiketta.
Vaihe 7) Kirjoita nimi ja valitse portin numero
Kirjoita seuraavassa ikkunassa ilmentymรคn nimi, valitse portin numero ja aseta tarvittava koko. Napsauta Seuraava-painiketta:
Vaihe 8) Napsauta Seuraava
Napsauta seuraavassa ikkunassa yksinkertaisesti Seuraava-painiketta.
Vaihe 9) Napsauta Asenna
Kรคynnistรค asennus napsauttamalla Asenna-painiketta.
Vaihe 10) Edistymispalkki nรคytetรครคn
Nรคkyviin tulee edistymispalkki, joka nรคyttรครค asennuksen edistymisen:
Vaihe 11) Napsauta Valmis-painiketta
Kun asennus on valmis, nรคet Valmis-painikkeen. Napsauta painiketta sulkeaksesi ikkunan:
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.
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:
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;
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;
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;
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));
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));
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;
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;
Taulukossa on kaksi saraketta. Voit tarkastella hintataulukon rakennetta suorittamalla seuraavan komennon:
DESC Price;
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');
Olet lisรคnnyt taulukkoon yhden tietueen. Lisรครค tietue Hintataulukkoon:
INSERT INTO price (id, price) VALUES(1, 200);
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;
Katso nyt hintataulukon sisรคltรถ:
SELECT * from price;
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');
Voit tarkistaa taulukosta, onko tietueet lisรคtty onnistuneesti:
SELECT * FROM book;
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);
Varmistetaan, onko tietueiden luominen onnistunut:
SELECT * FROM price;
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:
Muutetaan kirjan hintaa tunnuksella 1 200:sta 250:een:
UPDATE price SET price = 250 WHERE id = 1;
Komento suoritettiin onnistuneesti. Voit nyt kysyรค taulukosta, onko muutos tapahtunut:
Yllรค oleva kuvakaappaus osoittaa, ettรค muutos on toteutettu. Harkitse taulukkokirjaa, jossa on seuraavat tietueet:
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;
Tarkista, onko muutos toteutettu:
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:
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;
Tee nyt kysely taulukosta tarkistaaksesi, onko muutos tehty onnistuneesti:
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:
Meidรคn on poistettava viimeinen tietue taulukosta. Sen tunnus on 6 ja hinta 280. Poistetaan tietue:
DELETE FROM price WHERE id = 6;
Komento suoritettiin onnistuneesti. Kysytรครคn taulukosta, onnistuiko poistaminen:
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:
Oletetaan, ettรค meidรคn tรคytyy nรคhdรค tietueet, joissa hinta on alle 250. Voimme suorittaa seuraavan komennon:
SELECT * FROM price WHERE price < 250;
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;
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;
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:
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%';
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';
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%';
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:
Tarkastetaan tietue, jossa hinta on kuin 1_0. Suoritamme seuraavan komennon:
SELECT * FROM price WHERE price LIKE '1_0';
Se on palauttanut tietueen, jossa hinta on 190. Voimme myรถs kokeilla toista mallia:
SELECT * FROM price WHERE price LIKE '_2_';
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:
Etsitรครคn kaikki tietueet, joissa hinta ei ala kahdella:
SELECT * FROM price WHERE price NOT LIKE '2%';
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:
Suorita seuraava komento taulukkoa vastaan:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
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;
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;
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:
Kun valitsemme hintasarakkeen taulukosta, saamme seuraavan tuloksen:
SELECT price FROM Price;
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;
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;
Lause voi auttaa sinua hakemaan vain yhden sarakkeen tietokantataulukosta. Esimerkiksi:
SELECT price FROM Price;
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;
;
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();
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;
;
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);
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 ;
Voimme sitten kutsua yllรค olevaa funktiota seuraavasti:
select sumFunc(1000);
Komento palauttaa seuraavan:
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:
Hintataulukossa on seuraavat tiedot:
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:
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:
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:
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.






































































