MariaDB Tutorijal

ล to je MariaDB?

MariaDB je vilica od MySQL sustav za upravljanje bazom podataka. Kreirali su ga izvorni programeri. Ovaj DBMS alat nudi moguฤ‡nosti obrade podataka za male i poslovne zadatke.

MariaDB je poboljลกana verzija MySQL. Dolazi s brojnim ugraฤ‘enim moฤ‡nim znaฤajkama i mnogim poboljลกanjima upotrebljivosti, sigurnosti i performansi koje ne moลพete pronaฤ‡i MySQL.

Ovdje su znaฤajke MariaDB:

  • Djeluje pod GPL, BSD ili LGPL licencama.
  • MariaDB podrลพava popularan i standardni jezik za upite.
  • Dolazi s mnogo mehanizama za pohranu podataka, ukljuฤujuฤ‡i one visokih performansi koji se mogu integrirati s drugim sustavima za upravljanje relacijskim bazama podataka.
  • Pruลพa tehnologiju klastera Galera.
  • MariaDB podrลพava PHP, popularan jezik za web razvoj.
  • MariaDB moลพe raditi na razliฤitim operativnim sustavima i podrลพava brojne programske jezike.
  • MariaDB dolazi s dodatnim naredbama koje nisu dostupne u MySQL. MySQL ima znaฤajke koje imaju negativan utjecaj na performanse DBMS-a. Takve znaฤajke zamijenjene su u MariaDB.

MariaDB vs MySQL

U nastavku su neke kljuฤne razlike izmeฤ‘u MariaDB vs MySQL

Parametar MariaDB MySQL
Viลกe opcija za pohranu podataka MariaDB ima 12 novih mehanizama za pohranu u kojima neฤ‡ete pronaฤ‡i MySQL. Ima manje moguฤ‡nosti za pohranu u usporedbi s MariaDB.
Poboljลกanja brzine MariaDB pokazuje poboljลกanu brzinu u usporedbi s MySQL. Dolazi s brojnim znaฤajkama za optimizaciju brzine. Takve znaฤajke ukljuฤuju izvedene prikaze/tablice, podupit, kontrolu izvrลกenja, pristup disku i kontrolu optimizatora. MySQL pokazuje manju brzinu u usporedbi s MariaDB. Oslanja se na samo nekoliko znaฤajki za optimizaciju brzine, na primjer, hash indekse.
Brลพa predmemorija/indeksi S motorom za pohranu memorije od MariaDB, naredba INSERT moลพe biti dovrลกena 24% nego u standardu MySQL. Mehanizam za pohranu memorije MySQL je sporiji u odnosu na to MariaDB.
Veฤ‡i i brลพi skup povezivanja MariaDB dolazi s naprednim skupom niti koji moลพe raditi brลพe i podrลพava do 200,000+ veza. Skup niti koje pruลพa MySQL ne moลพe podrลพati do 200,000 veza po vremenu.
Poboljลกana replikacija In MariaDB, replikacija se moลพe obaviti sigurnije i brลพe. Aลพuriranja se takoฤ‘er mogu obaviti 2x brลพe u usporedbi s tradicionalnim MySQL. MySQLIzdanje zajednice omoguฤ‡uje statiฤno povezivanje nizova. MySQLEnterprise plan dolazi s moguฤ‡nostima niti.
Nove znaฤajke/proลกirenja MariaDB dolazi s novim znaฤajkama i proลกirenjima ukljuฤujuฤ‡i naredbe JSON, WITH i KILL. Novo MariaDB znaฤajke nisu dostupne u MySQL.
Nedostaju znaฤajke MariaDB nedostaju neke znaฤajke koje nudi MySQL poduzeฤ‡e izdanje. Kako bi to rijeลกio, nudi alternativne dodatke otvorenog koda. Stoga, MariaDB korisnici mogu uลพivati โ€‹โ€‹u istim funkcijama kao MySQL Korisnici Enterprise Edition. Enterprise Edition of MySQL koristi vlasniฤki kod. Samo korisnici MySQL Enterprise Edition imaju pristup ovome.

Kako instalirati MariaDB

Instalirajte kao samostalnu aplikaciju

Da biste mogli koristiti MariaDB, morate ga instalirati na svoje raฤunalo.

Instalacija se moลพe izvrลกiti slijedeฤ‡i dolje navedene korake:

Korak 1) Otvori ispod URL-a
Preuzmite instalacijsku datoteku s poveznice https://downloads.mariadb.org/

Korak 2) Double kliknite datoteku za poฤetak instalacije
Kada je preuzimanje zavrลกeno, otvorite datoteku

Korak 3) Pritisnite gumb Dalje
U prozoru koji se pojavi kliknite gumb Dalje:

Instalacija MariaDB

Korak 4) Prihvatite licencni ugovor
Zatim kliknite gumb Dalje:

Instalacija MariaDB

Korak 5) Odaberite MariaDB Server
Odaberite znaฤajke koje ลพelite instalirati i kliknite Dalje

Instalacija MariaDB

Korak 6) Unesite lozinku
U sljedeฤ‡em prozoru od vas ฤ‡e se traลพiti da promijenite lozinku za root korisnika.

  1. Unesite lozinku i potvrdite je ponovnim upisivanjem iste lozinke. Ako ลพelite dopustiti pristup s udaljenih raฤunala, aktivirajte potreban potvrdni okvir.
  2. Kada zavrลกite, kliknite gumb Dalje.

Instalacija MariaDB

Korak 7) Unesite ime i odaberite broj prikljuฤka
U sljedeฤ‡em prozoru upiลกite naziv instance, odaberite broj porta i postavite potrebnu veliฤinu. Pritisnite gumb Dalje:

Instalacija MariaDB

Korak 8) Kliknite Dalje
U sljedeฤ‡em prozoru jednostavno kliknite gumb Dalje.

Korak 9) Kliknite na Instaliraj
Pokrenite instalaciju klikom na gumb Instaliraj.

Instalacija MariaDB

Korak 10) Prikazana traka napretka
Prikazat ฤ‡e se traka napretka koja prikazuje napredak instalacije:

Instalacija MariaDB

Korak 11) Pritisnite gumb Zavrลกi
Kada instalacija zavrลกi, vidjet ฤ‡ete gumb Zavrลกi. Pritisnite gumb za zatvaranje prozora:

Instalacija MariaDB

Korak 12) ฤŒestitamo!
Sad jesi MariaDB instaliran na vaลกem raฤunalu.

Rad s naredbenim redkom

Sad kad jesi MariaDB instaliran na vaลกem raฤunalu, vrijeme je da ga pokrenete i poฤnete koristiti. To se moลพe uฤiniti putem MariaDB naredbeni redak.

Slijedite korake navedene u nastavku:

Korak 1) Pritisnite Start, odaberite Svi programi i kliknite MariaDB...

Korak 2) Odaberite MariaDB Naredbenog retka.

MariaDB Command Prompt

Korak 3) The MariaDB pokrenut ฤ‡e se naredbeni redak. Sada je vrijeme za prijavu. Morate se prijaviti kao root korisnik i lozinku koju ste postavili tijekom instalacije MariaDB. Upiลกite sljedeฤ‡u naredbu u naredbeni redak:

MySQL -u root -p

Korak 4) Unesite lozinku i pritisnite tipku za povratak. Trebali biste biti prijavljeni, kao ลกto je prikazano u nastavku:

MariaDB Command Prompt

Sada ste prijavljeni MariaDB.

Vrste podataka

MariaDB podrลพava sljedeฤ‡e vrste podataka:

  • String tipovi podataka
  • Numeriฤki tipovi podataka
  • Vrste podataka datum/vrijeme
  • Tipovi podataka velikih objekata

String tipovi podataka

To ukljuฤuje sljedeฤ‡e:

Tip podataka niza Description
char (veliฤina) Veliฤina oznaฤava broj znakova koji se pohranjuju. Pohranjuje maksimalno 255 znakova. ลฝice fiksne duljine.
varchar(veliฤina) Veliฤina oznaฤava broj znakova koji se pohranjuju. Pohranjuje maksimalno 255 znakova. Nizovi promjenjive duljine.
tekst (veliฤina) Veliฤina oznaฤava broj znakova koji se pohranjuju. Pohranjuje maksimalno 255 znakova. ลฝice fiksne duljine.
binarni (veliฤina) Veliฤina oznaฤava broj znakova koji se pohranjuju. Pohranjuje maksimalno 255 znakova. Nizovi fiksne veliฤine.

Numeriฤke vrste podataka

Oni ukljuฤuju sljedeฤ‡e:

Numeriฤke vrste podataka Description
bit Vrlo mala vrijednost cijelog broja ekvivalentna tinyint(1). Vrijednosti s predznakom kreฤ‡u se izmeฤ‘u -128 i 127. Vrijednosti bez predznaka kreฤ‡u se izmeฤ‘u 0 i 255.
int(m) Standardna vrijednost cijelog broja. Vrijednosti s predznakom kreฤ‡u se izmeฤ‘u -2147483648 i 2147483647. Vrijednosti bez predznaka kreฤ‡u se izmeฤ‘u 0 i 4294967295.
float(m, d) Broj s pomiฤnim zarezom s jednostrukom preciznoลกฤ‡u.
dvostruko (m,d) Broj s pomiฤnim zarezom s dvostrukom preciznoลกฤ‡u.
float(p) Broj s pomiฤnim zarezom.

Vrste podataka datum/vrijeme

To ukljuฤuje sljedeฤ‡e:

Vrsta podataka datum/vrijeme Description
Datum Prikazuje se u obliku 'gggg-mm-dd.' Vrijednosti se kreฤ‡u izmeฤ‘u '1000-01-01' i '9999-12-31'.
datum Vrijeme Prikazuje se u obliku 'gggg-mm-dd hh:mm:ss'. Vrijednosti se kreฤ‡u izmeฤ‘u '1000-01-01 00:00:00' i '9999-12-31 23:59:59'.
vremenska oznaka (m) Prikazuje se u obliku 'gggg-mm-dd hh:mm:ss'. Vrijednosti se kreฤ‡u izmeฤ‘u '1970-01-01 00:00:01' utc i '2038-01-19 03:14:07' utc.
Vrijeme Prikazuje se u obliku 'hh:mm:ss'. Vrijednosti se kreฤ‡u izmeฤ‘u '-838:59:59' i '838:59:59'.

Veliki objektni tipovi podataka (LOB)

Oni ukljuฤuju sljedeฤ‡e:

Tip podataka velikog objekta Description
siฤ‡uลกna mrljica Njegova najveฤ‡a veliฤina je 255 bajtova.
mrlja (veliฤina) Uzima 65,535 XNUMX bajtova kao maksimalnu veliฤinu.
srednja mrlja Njegova najveฤ‡a veliฤina je 16,777,215 bajtova.
dugaฤak tekst Kao maksimalna veliฤina potrebno je 4 GB.

Napravite bazu podataka i tablice

Za stvaranje nove baze podataka u MariaDB, trebali biste imati posebne privilegije koje su dodijeljene samo root korisniku i administratorima.

Da biste stvorili novu bazu podataka, trebali biste koristiti naredbu CREATE DATABASE koja ima sljedeฤ‡u sintaksu:

CREATE DATABASE DatabaseName;

U ovom sluฤaju morate kreirati bazu podataka i dati joj naziv Demo.

Pokrenite MariaDB naredbeni redak i prijavite se kao root korisnik upisivanjem sljedeฤ‡e naredbe:

mysql -u root -p

Upiลกite root lozinku i pritisnite tipku return. Bit ฤ‡ete prijavljeni.

Sada pokrenite sljedeฤ‡u naredbu:

CREATE DATABASE Demo;

Stvorite bazu podataka i tablice u MariaDB

Zatim ste stvorili bazu podataka pod nazivom Demo. Bilo bi dobro da potvrdite je li baza podataka uspjeลกno kreirana ili ne. Morate samo prikazati popis dostupnih baza podataka pokretanjem sljedeฤ‡e naredbe:

SHOW DATABASES;

Stvorite bazu podataka i tablice u MariaDB

Gornji rezultat pokazuje da je Demo baza podataka dio popisa, stoga je baza podataka uspjeลกno stvorena.

MariaDB Odaberite Baza podataka

Da biste mogli koristiti ili raditi na odreฤ‘enoj bazi podataka, morate je odabrati s popisa dostupnih baza podataka. Nakon odabira baze podataka, moลพete obavljati zadatke kao ลกto je stvaranje tablica unutar baze podataka.

Za odabir baze podataka trebate koristiti naredbu USE. Potrebna je sintaksa navedena u nastavku:

USE database_name;

Morate koristiti Demo bazu podataka. Moลพete ga odabrati pokretanjem sljedeฤ‡e naredbe:

USE Demo;

Stvorite bazu podataka i tablice u MariaDB

Gornja slika pokazuje da je MariaDB naredbeni redak promijenio se iz none u naziv baze podataka koja je odabrana.

Sada moลพete nastaviti i stvarati tablice unutar Demo baze podataka.

MariaDB โ€“ Napravi tablicu

Da biste mogli izraditi tablicu, morate imati odabranu bazu podataka. Tablica se moลพe kreirati pomoฤ‡u naredbe CREATE TABLE. Evo sintakse za naredbu:

CREATE TABLE tableName (columnName columnType);

Moลพete postaviti jedan od stupaca da bude primarni kljuฤ. Ovaj stupac ne smije dopuลกtati nulte vrijednosti.

Napravit ฤ‡emo dvije tablice unutar Demo baze podataka, tablice Book i Price. Svaka tablica ฤ‡e imati dva stupca.

Zapoฤnimo stvaranjem tablice Book s dva stupca, id i name. Pokrenite sljedeฤ‡u naredbu:

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

Stvorite bazu podataka i tablice u MariaDB

Ograniฤenje PRIMARY KEY koriลกteno je za postavljanje id stupca kao primarnog kljuฤa za tablicu. Svojstvo AUTO_INCREMENT automatski ฤ‡e poveฤ‡ati vrijednosti stupca id za 1 za svaki novi zapis umetnut u tablicu. Svi stupci neฤ‡e dopustiti nulte vrijednosti.

Sada kreirajte drugu tablicu, tablicu cijena:

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

Stvorite bazu podataka i tablice u MariaDB

Id stupac je postavljen kao primarni kljuฤ za tablicu.

Prikaz tablica

Sada kada ste izradili dvije tablice, bilo bi dobro za vas utvrditi jesu li tablice izraฤ‘ene uspjeลกno ili ne. Popis tablica sadrลพanih u bazi podataka moลพete prikazati izvoฤ‘enjem sljedeฤ‡e naredbe:

SHOW TABLES;

Stvorite bazu podataka i tablice u MariaDB

Gornji snimak zaslona pokazuje da su dvije tablice uspjeลกno stvorene unutar baze podataka Demo.

Prikaz strukture tablice

Da biste vidjeli strukturu bilo koje odreฤ‘ene tablice, moลพete upotrijebiti naredbu DESCRIBE, obiฤno skraฤ‡enu kao DESC. Potrebna je sljedeฤ‡a sintaksa:

DESC TableName;

Na primjer, da vidite strukturu tablice pod nazivom Knjiga, moลพete pokrenuti sljedeฤ‡u naredbu;

DESC Book;

Stvorite bazu podataka i tablice u MariaDB

Tablica ima dva stupca. Da biste vidjeli strukturu tablice cijena, moลพete pokrenuti sljedeฤ‡u naredbu:

DESC Price;

Stvorite bazu podataka i tablice u MariaDB

CRUD i klauzule

INSERT

Za umetanje podataka u a MariaDB tablici, trebali biste koristiti naredbu INSERT INTO. Ova naredba uzima sintaksu danu u nastavku:

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

Gornja sintaksa pokazuje da morate navesti stupce tablice u koje ลพelite umetnuti podatke kao i podatke koje trebate umetnuti.

Umetnimo zapis u tablicu knjige:

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

CRUD i klauzule-INSERT

U tablicu ste umetnuli jedan zapis. Umetnite zapis u tablicu cijena:

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

CRUD i klauzule-INSERT

Zapis je stvoren.

SELECT

Naredba SELECT pomaลพe nam da pregledamo ili vidimo sadrลพaj tablice baze podataka. Da biste vidjeli sadrลพaj tablice knjiga, na primjer, trebate pokrenuti sljedeฤ‡u naredbu:

SELECT * from book;

CRUD i klauzule-INSERT

Sada pogledajte sadrลพaj tablice cijena:

SELECT * from price;

CRUD i klauzule-INSERT

Umetanje viลกe zapisa

Moguฤ‡e je da umetnemo viลกe zapisa u a MariaDB stol u pokretu. Da biste to demonstrirali, pokrenite sljedeฤ‡i primjer:

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

Umetanje viลกe zapisa

Moลพete postaviti upit tablici da biste provjerili jesu li zapisi uspjeลกno umetnuti:

SELECT * FROM book;

Umetanje viลกe zapisa

Zapisi su uspjeลกno umetnuti. Umetnite viลกe zapisa u tablicu cijena pokretanjem ovog primjera:

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

Umetanje viลกe zapisa

Potvrdimo jesu li zapisi uspjeลกno kreirani:

SELECT * FROM price;

Umetanje viลกe zapisa

UPDATE

Naredba UPDATE nam pomaลพe promijeniti ili modificirati zapise koji su veฤ‡ umetnuti u tablicu. Moลพete ga kombinirati s klauzulom WHERE kako biste odredili zapis koji treba aลพurirati. Evo sintakse:

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

Naredba UPDATE takoฤ‘er se moลพe kombinirati s klauzulama kao ลกto su SET, WHERE, LIMIT i ORDER BY. Vidjet ฤ‡ete ovo uskoro:

Razmotrite tablicu pod nazivom Cijena sa sljedeฤ‡im zapisima:

CRUD i klauzule - AลฝURIRANJE

Promijenimo cijenu knjige s id-om 1 sa 200 na 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD i klauzule - AลฝURIRANJE

Naredba je uspjeลกno izvedena. Sada moลพete postaviti upit tablici da vidite je li doลกlo do promjene:

CRUD i klauzule - AลฝURIRANJE

Gornji snimak zaslona pokazuje da je promjena provedena. Razmotrite tablicu Knjigu sa sljedeฤ‡im zapisima:

CRUD i klauzule - AลฝURIRANJE

Promijenimo ime knjige pod nazivom Knjiga u MariaDB Knjiga1. Primijetite da knjiga ima ID 1. Evo naredbe za ovo:

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

CRUD i klauzule - AลฝURIRANJE

Provjerite je li promjena provedena:

CRUD i klauzule - AลฝURIRANJE

Gornji snimak zaslona pokazuje da je promjena uspjeลกno implementirana.

U gornjim primjerima promijenili smo samo jedan po jedan stupac. Meฤ‘utim, moguฤ‡e je promijeniti viลกe stupaca odjednom. Pokaลพimo to na primjeru.

Posluลพimo se tablicom cijena sa sljedeฤ‡im podacima:

CRUD i klauzule - AลฝURIRANJE

Promijenimo i ID i cijenu knjige s ID-om 5. Promijenit ฤ‡emo njezin ID na 6, a cijenu na 6. Pokrenite sljedeฤ‡u naredbu:

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

  CRUD i klauzule - AลฝURIRANJE

Sada postavite upit tablici da provjerite je li promjena uspjeลกno napravljena:

CRUD i klauzule - AลฝURIRANJE

Promjena je uspjeลกno izvrลกena.

Izbrisati

Naredbu DELETE koristimo kada trebamo izbrisati jedan ili viลกe zapisa iz tablice. Evo sintakse za naredbu:

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

Razmotrite tablicu cijena sa sljedeฤ‡im zapisima:

CRUD i klauzule-DELETE

Moramo izbrisati zadnji zapis iz tablice. Ima ID 6 i cijenu 280. Izbriลกite zapis:

DELETE FROM price
WHERE id = 6;   

CRUD i klauzule-DELETE

Naredba je uspjeลกno izvedena. Upitajmo tablicu da potvrdimo je li brisanje uspjeลกno:

CRUD i klauzule-DELETE

Izlaz pokazuje da je zapis uspjeลกno izbrisan.

Gdje

WHERE klauzula nam pomaลพe odrediti toฤnu lokaciju na kojoj trebamo napraviti promjenu. Koristi se zajedno s izjavama kao ลกto su INSERT, SELECT, UPDATE i DELETE. Razmotrite tablicu cijena sa sljedeฤ‡im podacima:

CRUD i klauzule - gdje

Pretpostavimo da trebamo vidjeti zapise u kojima je cijena manja od 250. Moลพemo pokrenuti sljedeฤ‡u naredbu:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD i klauzule - gdje

Svi zapisi u kojima je cijena ispod 250 su vraฤ‡eni.

Odredba WHERE moลพe se kombinirati s naredbom AND. Pretpostavimo da trebamo vidjeti sve zapise u tablici cijena gdje je cijena ispod 250, a id iznad 3. Moลพemo pokrenuti sljedeฤ‡u naredbu:

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

CRUD i klauzule - gdje

Vraฤ‡en je samo jedan zapis. Razlog tome je ลกto mora ispunjavati sve uvjete koji su navedeni, odnosno id iznad 3 i cijenu ispod 250. Ako se prekrลกi bilo koji od ovih uvjeta, zapis se neฤ‡e vratiti.

Klauzula se takoฤ‘er moลพe kombinirati s naredbom OR. Zamijenimo AND u naลกoj prethodnoj naredbi s OR i pogledajmo kakav izlaz dobivamo:

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

CRUD i klauzule - gdje

Sada dobivamo 2 zapisa umjesto 1. To je zato ลกto, da bi zapis bio kvalificiran, mora zadovoljiti samo jedan od navedenih uvjeta.

Like

Ova se klauzula koristi za odreฤ‘ivanje uzorka podataka kada se pristupa podacima tablice u kojima je potrebno toฤno podudaranje. Moลพe se kombinirati s izjavama INSERT, UPDATE, SELECT i DELETE.

Trebali biste klauzuli proslijediti obrazac podataka koji traลพite, a ona ฤ‡e vratiti ili true ili false. Ovo su zamjenski znakovi koji se mogu koristiti zajedno s klauzulom:

  • %: za podudaranje 0 ili viลกe znakova.
  • _: za podudaranje jednog znaka.

Evo sintakse za klauzulu LIKE:

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

Pokaลพimo kako koristiti klauzulu sa zamjenskim znakom %. Iskoristimo tablicu Book sa sljedeฤ‡im zapisima:

CRUD i klauzule - gdje

Moramo vidjeti sve zapise u kojima ime poฤinje s M. Moลพemo pokrenuti sljedeฤ‡u naredbu:

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

 CRUD i klauzule - gdje

Svi zapisi su vraฤ‡eni jer njihova imena poฤinju slovom M. Da biste vidjeli sva imena koja zavrลกavaju sa 4, moลพete pokrenuti sljedeฤ‡u naredbu:

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

CRUD i klauzule - gdje

Vraฤ‡eno je samo jedno ime jer jedino ono ispunjava uvjet.

Takoฤ‘er moลพemo okruลพiti obrazac pretraลพivanja zamjenskim znakom:

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

CRUD i klauzule - gdje

Osim zamjenskog znaka %, klauzula LIKE moลพe se koristiti zajedno sa zamjenskim znakom _. Ovo je zamjenski znak za podvlaku i traลพit ฤ‡e samo jedan znak.

Radimo s tablicom cijena sa sljedeฤ‡im zapisima:

CRUD i klauzule - gdje

Provjerimo zapis u kojem je cijena 1_0. Pokreฤ‡emo sljedeฤ‡u naredbu:

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

CRUD i klauzule - gdje

Vratio je zapis u kojem je cijena 190. Takoฤ‘er moลพemo pokuลกati s drugim uzorkom:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD i klauzule - gdje

Moguฤ‡e je koristiti klauzulu LIKE zajedno s operatorom NOT. Ovo ฤ‡e vratiti sve zapise koji ne zadovoljavaju navedeni uzorak. Na primjer:

Iskoristimo tablicu cijena sa sljedeฤ‡im zapisima:

CRUD i klauzule - gdje

Pronaฤ‘imo sve zapise u kojima cijena ne poฤinje s 2:

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

CRUD i klauzule - gdje

Samo jedan zapis ne zadovoljava navedeni obrazac.

Naruฤi po

Ova nam klauzula pomaลพe razvrstati naลกe zapise bilo uzlaznim bilo silaznim redoslijedom. Koristimo ga s naredbom SELECT, kao ลกto je prikazano u nastavku:

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

Moguฤ‡e je koristiti ovu klauzulu bez dodavanja ASC ili DESC dijela. Na primjer:

Koristit ฤ‡emo tablicu cijena sa sljedeฤ‡im zapisima:

CRUD i klauzule - gdje

Izvedite sljedeฤ‡u naredbu nad tablicom:

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

CRUD i klauzule - gdje

U gornjoj naredbi poredali smo po cijeni. Zapisi su poredani s cijenama uzlaznim redoslijedom. To znaฤi da kada ne navedemo redoslijed, sortiranje se prema zadanim postavkama vrลกi uzlaznim redoslijedom.

Pokrenimo klauzulu s DESC opcijom:

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

 CRUD i klauzule - gdje

Zapisi su poredani s cijenom silaznim redoslijedom kako smo naveli.

Upotrijebimo klauzulu ORDER BY zajedno s ASC atributom:

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

 CRUD i klauzule - gdje

Zapisi su poredani, ali s cijenama u uzlaznom redoslijedu. Ovo je sliฤno kao kad koristimo klauzulu ORDER BY bez ASC ili DESC atributa.

DISTINCT

Ova klauzula nam pomaลพe da uklonimo duplikate pri odabiru zapisa iz tablice. To znaฤi da nam pomaลพe da dobijemo jedinstvene zapise. Njegova sintaksa je navedena u nastavku:

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

Da bismo to demonstrirali, koristit ฤ‡emo tablicu cijena sa sljedeฤ‡im podacima:

CRUD i klauzule - DISTINCT

Kada iz tablice izaberemo stupac cijena, dobivamo sljedeฤ‡i rezultat:

SELECT price FROM Price;

CRUD i klauzule - DISTINCT

Imamo dva zapisa s cijenom od 250, stvarajuฤ‡i duplikat. Moramo imati samo jedinstvene zapise. Moลพemo ih filtrirati pomoฤ‡u klauzule DISTINCT kao ลกto je prikazano u nastavku:

SELECT DISTINCT price FROM Price;

CRUD i klauzule - DISTINCT

Sada nemamo nijedan duplikat u gornjem izlazu.

Od

Klauzula FROM koja se koristi za dohvaฤ‡anje podataka iz tablice baze podataka. Moลพe pomoฤ‡i i kod spajanja stolova. Evo sintakse za naredbu:

SELECT columnNames FROM tableName; 

Da biste vidjeli sadrลพaj tablice knjiga, pokrenite sljedeฤ‡u naredbu:

SELECT * FROM price;

CRUD i klauzule-iz

Klauzula vam moลพe pomoฤ‡i da dohvatite samo jedan stupac iz tablice baze podataka. Na primjer:

SELECT price FROM Price;

CRUD i klauzule-iz

Napredni zadaci

Pohranjeni postupak

Postupak je a MariaDB program kojem moลพete proslijediti parametre. Procedura ne vraฤ‡a vrijednosti. Za izradu procedure koristimo naredbu CREATE PROCEDURE.

Da bismo demonstrirali kako stvoriti i pozvati proceduru, stvorit ฤ‡emo proceduru pod nazivom myProcedure() koja nam pomaลพe odabrati stupac imena iz tablice knjige. Evo postupka:

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

Napredni zadaci-pohranjeni postupak

Procedura je kreirana. Jednostavno smo zatvorili naredbu SELECT unutar klauzula BEGIN i END procedure.

Sada moลพemo proceduru nazvati njenim imenom kao ลกto je prikazano u nastavku:

CALL myProcedure();

Napredni zadaci-pohranjeni postupak

Procedura vraฤ‡a stupac naziva tablice knjige kada se pozove.

Moลพemo kreirati proceduru koja uzima parametar. Na primjer, trebamo odabrati naziv knjige i filtrirati pomoฤ‡u ID-a knjige. Za to moลพemo kreirati sljedeฤ‡i postupak:

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

Napredni zadaci-pohranjeni postupak

Gore smo stvorili proceduru pod nazivom myProcedure2(). Ova procedura uzima jedan cjelobrojni parametar pod nazivom book_id koji je ID knjige ฤije ime trebamo vidjeti. Da bismo vidjeli naziv knjige s ID-om 3, moลพemo pozvati proceduru na sljedeฤ‡i naฤin:

CALL myProcedure2(3);

Napredni zadaci-pohranjeni postupak

funkcija

Za razliku od procedura, moramo proslijediti parametre funkcijama, a funkcija mora vratiti vrijednost. Za stvaranje funkcije u MariaDB, koristimo naredbu CREATE FUNCTION. Izjava ima sljedeฤ‡u sintaksu:

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;

Gore navedeni parametri opisani su u nastavku:

Parametar Description
klauzula DEFINER Ovaj parametar nije obavezan. Ako to ne navedete, definiraฤ ฤ‡e postati korisnik koji je stvorio funkciju. Ako postoji potreba za specificiranjem drugog definitora, ukljuฤite klauzulu DEFINER u kojoj ฤ‡e user_name biti definitor funkcije.
naziv_funkcije Naziv koji ฤ‡e se dodijeliti ovoj funkciji u MariaDB.
parametar Parametar(i) proslijeฤ‘en funkciji. Tijekom kreiranja funkcije svi parametri se tretiraju kao IN parametri (umjesto parametara OUT/INOUT).
povratni_tip_podataka Tip podataka povratne vrijednosti funkcije.
JEZIK SQL Utjeฤe na prenosivost, ali ne i na funkciju.
DETERMINISTIฤŒKA Funkcija ฤ‡e vratiti jedan rezultat samo ako joj je zadan niz parametara.
NIJE DETERMINISTIฤŒKO Moguฤ‡e je da funkcija vrati drugaฤiji rezultat kada joj se zada niz parametara.
SADRลฝI SQL obavjeลกtava MariaDB da ova funkcija sadrลพi SQL. Baza podataka neฤ‡e provjeriti je li to toฤno.
NEMA SQL-a Ova klauzula se ne koristi i nema utjecaja na vaลกu funkciju.
ฤŒITA SQL PODATKE govori MariaDB da ฤ‡e ova funkcija koristiti SELECT naredbe za ฤitanje podataka, ali neฤ‡e modificirati podatke.
MIJENJA SQL PODATKE govori MariaDB da ฤ‡e ova funkcija koristiti INSERT, DELETE, UPDATE i druge DDL izjave za izmjenu SQL podataka.
deklaracija-odjeljak Ovdje treba deklarirati lokalne varijable.
izvrลกni-odjeljak Ovdje treba dodati kod funkcije.

Evo primjera MariaDB funkcija:

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 ;

Funkcija u MariaDB

Tada moลพemo pozvati gornju funkciju na sljedeฤ‡i naฤin:

select sumFunc(1000);

Naredba ฤ‡e vratiti sljedeฤ‡e:

Funkcija u MariaDB

Nakon ลกto zavrลกite s nekom funkcijom, bilo bi dobro da je izbriลกete. Ovo je jednostavno jer morate samo pozvati naredbu DROP FUNCTION koja ima sljedeฤ‡u sintaksu:

DROP FUNCTION function_name;

Na primjer, da ispustimo funkciju pod nazivom myFunc, moลพemo pokrenuti sljedeฤ‡u naredbu:

DROP FUNCTION myFunc;

PRIDRUลฝITE

Kada trebate dohvatiti podatke iz viลกe od jedne tablice odjednom, koristite MariaDB PRIDRUลฝUJE SE. To znaฤi da a PRIDRUลฝITE radi na dva ili viลกe stolova. Sljedeฤ‡e tri vrste JOIN-ova su podrลพane u MariaDB:

  • UNUTARNJI/JEDNOSTAVNI SPOJ
  • LIJEVI VANJSKI SPOJ/LIJEVI SPOJ
  • DESNI VANJSKI SPOJ/DESNI SPOJ

Razmotrimo ih jednu po jednu:

INNER JOIN

Unutarnje spajanje vraฤ‡a sve retke iz tablica u kojima je uvjet spajanja istinit. Sintaksa mu je sljedeฤ‡a:

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

Na primjer:

Koristit ฤ‡emo naลกa dva stola, knjige i knjigu.

Tablica knjiga ima sljedeฤ‡e podatke:

INNER JOIN

Tablica cijena sadrลพi sljedeฤ‡e podatke:

INNER JOIN

Cilj je spojiti stupac naziva iz tablice Knjiga i stupac cijene iz tablice Cijena u jednu tablicu. To je moguฤ‡e s unutarnjim spajanjem, kao ลกto je prikazano u nastavku:

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

Naredba vraฤ‡a sljedeฤ‡e:

INNER JOIN

LIJEVI VANJSKI SPOJ

Ovo spajanje vraฤ‡a sve retke iz lijeve tablice i samo retke u kojima je uvjet spajanja istinit iz druge tablice. Sintaksa mu je sljedeฤ‡a:

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

Kljuฤna rijeฤ OUTER stavljena je u uglate zagrade jer nije obavezna.

Na primjer:

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

Naredba vraฤ‡a sljedeฤ‡e:

LIJEVI VANJSKI SPOJ

Posljednji zapis u gornjoj tablici nema odgovarajuฤ‡u vrijednost na lijevoj strani. Zbog toga je zamijenjen s NULL.

DESNI VANJSKI SPOJ

Ovo spajanje vraฤ‡a sve retke iz desne tablice i samo retke u kojima je uvjet spajanja istinit iz druge tablice. Sintaksa mu je sljedeฤ‡a:

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

Kljuฤna rijeฤ OUTER stavljena je u uglate zagrade jer nije obavezna.

Na primjer:

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

Naredba vraฤ‡a sljedeฤ‡e:

DESNI VANJSKI SPOJ

Razlog je taj ลกto su svi retci u desnoj tablici usklaฤ‘eni s onima u drugoj tablici. Ako se neki od redaka ne poklapaju, imali bismo NULL u prvom stupcu.

Saลพmite ovu objavu uz: