MariaDB Tutorial: Învață Sintaxa, Comenzi cu Exemple

Ce Este MariaDB?

MariaDB este o furculiță a MySQL Sistemul de gestionare a bazelor de date. Este creat de dezvoltatorii săi originali. Acest instrument DBMS oferă capabilități de procesare a datelor atât pentru sarcini mici, cât și pentru întreprinderi.

MariaDB este o versiune îmbunătățită a MySQL. Vine cu numeroase funcții puternice încorporate și multe abilități de utilizare, îmbunătățiri de securitate și performanță pe care nu le puteți găsi în MySQL.

Iată caracteristicile lui MariaDB:

  • Funcționează sub licențe GPL, BSD sau LGPL.
  • MariaDB acceptă un limbaj de interogare popular și standard.
  • Vine cu multe motoare de stocare, inclusiv cele de înaltă performanță care pot fi integrate cu alte sisteme de gestionare a bazelor de date relaționale.
  • Oferă tehnologia cluster Galera.
  • MariaDB acceptă PHP, un limbaj popular pentru dezvoltarea web.
  • MariaDB poate rula pe diferite sisteme de operare și acceptă numeroase limbaje de programare.
  • MariaDB vine cu comenzi suplimentare care nu sunt disponibile în MySQL. MySQL are caracteristici care au un impact negativ asupra performanței SGBD. Astfel de caracteristici au fost înlocuite în MariaDB.

MariaDB Raport MySQL

Mai jos sunt câteva diferențe cheie între MariaDB vs MySQL

Parametru MariaDB MySQL
Mai multe opțiuni pentru motoarele de stocare MariaDB are 12 noi motoare de stocare în care nu le vei găsi MySQL. Are mai puține opțiuni de stocare în comparație cu MariaDB.
Îmbunătățiri ale vitezei MariaDB arată o viteză îmbunătățită în comparație cu MySQL. Vine cu numeroase caracteristici pentru optimizarea vitezei. Astfel de caracteristici includ vederi/tabele derivate, subinterogare, control al execuției, acces la disc și control al optimizatorului. MySQL prezintă o viteză mai mică în comparație cu MariaDB. Se bazează pe doar câteva caracteristici pentru optimizarea vitezei, de exemplu, indici hash.
Cache/indexuri mai rapide Cu motorul de stocare în memorie al MariaDB, o instrucțiune INSERT poate fi completată cu 24% decât în ​​standard MySQL. Motorul de stocare a memoriei al MySQL este mai lent în comparație cu asta MariaDB.
Pool de conexiune mai mare și mai rapid MariaDB vine cu un pool de fire avansate capabil să ruleze mai rapid și să accepte până la 200,000 de conexiuni. Pool-ul de fire oferit de MySQL nu poate accepta până la 200,000 de conexiuni pe timp.
Replicare îmbunătățită In MariaDB, replicarea se poate face mai sigur și mai rapid. Actualizările pot fi, de asemenea, făcute de 2 ori mai rapid în comparație cu cele tradiționale MySQL. MySQLediția comunitară a lui permite conectarea unui număr static de fire. MySQLplanul de întreprindere al lui vine cu capabilități de thread.
Caracteristici/extensii noi MariaDB vine cu funcții și extensii noi, inclusiv instrucțiunile JSON, WITH și KILL. Noul MariaDB caracteristicile nu sunt furnizate în MySQL.
Caracteristici lipsă MariaDB îi lipsesc unele dintre caracteristicile oferite de MySQL ediție enterprise. Pentru a rezolva acest lucru, oferă pluginuri alternative open-source. Prin urmare, MariaDB utilizatorii se pot bucura de aceleași funcționalități ca și MySQL utilizatorii Enterprise Edition. Ediția Enterprise a MySQL folosește un cod proprietar. Doar utilizatorii de MySQL Enterprise Edition au acces la aceasta.

Cum se instalează MariaDB

Instalați ca aplicație autonomă

Pentru a putea utiliza MariaDB, trebuie să-l instalați pe computer.

Instalarea se poate face urmând pașii de mai jos:

Pas 1) Deschideți Sub URL
Descărcați fișierul de instalare de pe Link https://downloads.mariadb.org/

Pas 2) Double faceți clic pe fișier pentru a începe instalarea
Odată ce descărcarea este completă, deschideți fișierul

Pas 3) Faceți clic pe butonul Următorul
În fereastra care apare, faceți clic pe butonul Următorul:

Instalarea MariaDB

Pas 4) Acceptați acordul de licență
Apoi faceți clic pe butonul Următorul:

Instalarea MariaDB

Pas 5) Alege MariaDB server de
Alegeți caracteristicile care urmează să fie instalate și faceți clic pe Următorul

Instalarea MariaDB

Pas 6) Introduceți parola
În fereastra următoare, vi se va cere să schimbați parola pentru utilizatorul root.

  1. Introduceți parola și confirmați-o tastând din nou aceeași parolă. Dacă doriți să permiteți accesul de la mașini la distanță, activați caseta de selectare necesară.
  2. După ce ați terminat, faceți clic pe butonul Următorul.

Instalarea MariaDB

Pas 7) Introduceți numele și alegeți numărul portului
În fereastra următoare, introduceți un nume pentru instanță, alegeți numărul portului și setați dimensiunea necesară. Faceți clic pe butonul Următorul:

Instalarea MariaDB

Pas 8) Faceți clic pe Următorul
În fereastra următoare, faceți clic pe butonul Următorul.

Pas 9) Faceți clic pe Instalare
Lansați instalarea făcând clic pe butonul Instalare.

Instalarea MariaDB

Pas 10) Afișată o bară de progres
Va fi afișată o bară de progres care arată progresul instalării:

Instalarea MariaDB

Pas 11) Faceți clic pe butonul Terminare
Odată ce instalarea este finalizată, veți vedea butonul Terminare. Faceți clic pe butonul pentru a închide fereastra:

Instalarea MariaDB

Pas 12) Felicitări!
Acum ai MariaDB instalat pe computer.

Lucrul cu promptul de comandă

Acum că ai MariaDB instalat pe computer, este timpul să îl lansați și să începeți să îl utilizați. Acest lucru se poate face prin intermediul MariaDB prompt de comandă.

Urmați pașii de mai jos:

Pas 1) Faceți clic pe Start, alegeți Toate programele apoi faceți clic MariaDB...

Pas 2) Alege un MariaDB Comandă de comandă.

MariaDB Command Prompt

Pas 3) MariaDB promptul de comandă va fi pornit. Acum este timpul să vă autentificați. Ar trebui să vă autentificați ca utilizator root și parola pe care ați setat-o ​​în timpul instalării MariaDB. Tastați următoarea comandă în promptul de comandă:

MySQL -u root -p

Pas 4) Introduceți parola și apăsați tasta de retur. Ar trebui să fiți autentificat, așa cum se arată mai jos:

MariaDB Command Prompt

Acum sunteți conectat MariaDB.

Tipuri de date

MariaDB acceptă următoarele tipuri de date:

  • Tipuri de date șir
  • Tipuri de date numerice
  • Tipuri de date data/ora
  • Tipuri de date de obiecte mari

Tipuri de date șir

Acestea includ următoarele:

Tip de date șir Descriere
caracter (dimensiune) Mărimea indică numărul de caractere care trebuie stocate. Stochează maximum 255 de caractere. Corzi de lungime fixă.
varchar(dimensiune) Mărimea indică numărul de caractere care trebuie stocate. Stochează maximum 255 de caractere. Corzi de lungime variabilă.
Mărimea textului) Mărimea indică numărul de caractere care trebuie stocate. Stochează maximum 255 de caractere. Corzi de lungime fixă.
binar (dimensiune) Mărimea indică numărul de caractere care trebuie stocate. Stochează maximum 255 de caractere. Corzi de dimensiune fixă.

Tipuri de date numerice

Acestea includ următoarele:

Tipuri de date numerice Descriere
pic O valoare întreagă foarte mică echivalentă cu tinyint(1). Valorile semnate sunt cuprinse între -128 și 127. Valorile fără semn sunt cuprinse între 0 și 255.
int(m) O valoare întreagă standard. Valorile semnate variază între -2147483648 și 2147483647. Valorile fără semn variază între 0 și 4294967295.
plutitor (m, d) Un număr în virgulă mobilă cu o singură precizie.
dublu (m,d) Un număr în virgulă mobilă cu dublă precizie.
plutire(p) Un număr în virgulă mobilă.

Tipuri de date Data/Ora

Acestea includ următoarele:

Data/Ora Tip de date Descriere
Data Afișat sub forma „aaaa-ll-zz”. Valorile variază între „1000-01-01” și „9999-12-31”.
datetime Afișat sub forma „aaaa-mm-zz hh:mm:ss”. Valorile variază între „1000-01-01 00:00:00” și „9999-12-31 23:59:59”.
marca temporală (m) Afișat sub forma „aaaa-mm-zz hh:mm:ss”. Valorile variază între „1970-01-01 00:00:01” utc și „2038-01-19 03:14:07” utc.
Timp Afișat sub forma „hh:mm:ss”. Valorile variază între „-838:59:59” și „838:59:59”.

Tipuri de date obiecte mari (LOB)

Acestea includ următoarele:

Tip de date obiect mare Descriere
minuscul Dimensiunea sa maximă este de 255 de octeți.
blob (dimensiune) Ia 65,535 octeți ca dimensiune maximă.
mediumblob Dimensiunea sa maximă este de 16,777,215 de octeți.
text lung Este nevoie de 4 GB ca dimensiune maximă.

Creați o bază de date și tabele

Pentru a crea o nouă bază de date în MariaDB, ar trebui să aveți privilegii speciale care sunt acordate numai utilizatorului root și administratorilor.

Pentru a crea o nouă bază de date, ar trebui să utilizați comanda CREATE DATABASE care are următoarea sintaxă:

CREATE DATABASE DatabaseName;

În acest caz, trebuie să creați o bază de date și să îi dați numele Demo.

Porniți MariaDB promptul de comandă și conectați-vă ca utilizator rădăcină tastând următoarea comandă:

mysql -u root -p

Introduceți parola de rădăcină și apăsați tasta Retur. Veți fi autentificat.

Acum, rulați următoarea comandă:

CREATE DATABASE Demo;

Creați o bază de date și tabele în MariaDB

Apoi ați creat o bază de date numită Demo. Va fi bine să confirmați dacă baza de date a fost creată cu succes sau nu. Trebuie doar să afișați lista bazelor de date disponibile rulând următoarea comandă:

SHOW DATABASES;

Creați o bază de date și tabele în MariaDB

Rezultatul de mai sus arată că baza de date Demo face parte din listă, prin urmare baza de date a fost creată cu succes.

MariaDB Selectați baza de date

Pentru a putea folosi sau lucra la o anumită bază de date, trebuie să o selectezi din lista bazelor de date disponibile. După selectarea unei baze de date, puteți efectua sarcini precum crearea de tabele în baza de date.

Pentru a selecta o bază de date, ar trebui să utilizați comanda USE. Este nevoie de sintaxa de mai jos:

USE database_name;

Trebuie să utilizați baza de date Demo. O puteți selecta executând următoarea comandă:

USE Demo;

Creați o bază de date și tabele în MariaDB

Imaginea de mai sus arată că MariaDB promptul de comandă s-a schimbat de la niciunul la numele bazei de date care a fost selectată.

Acum puteți continua și crea tabele în baza de date Demo.

MariaDB – Creați tabel

Pentru a putea crea un tabel, trebuie să fi selectat o bază de date. Tabelul poate fi creat folosind instrucțiunea CREATE TABLE. Iată sintaxa pentru comandă:

CREATE TABLE tableName (columnName columnType);

Puteți seta una dintre coloane să fie cheia primară. Această coloană nu ar trebui să permită valori nule.

Vom crea două tabele în baza de date Demo, tabele Book și Price. Fiecare tabel va avea două coloane.

Să începem prin a crea tabelul Book cu două coloane, id și nume. Rulați următoarea comandă:

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

Creați o bază de date și tabele în MariaDB

Constrângerea PRIMARY KEY a fost folosită pentru a seta coloana id ca cheie primară pentru tabel. Proprietatea AUTO_INCREMENT va incrementa automat valorile coloanei id cu 1 pentru fiecare înregistrare nouă introdusă în tabel. Toate coloanele nu vor permite valori nule.

Acum, creați al doilea tabel, tabelul de prețuri:

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

Creați o bază de date și tabele în MariaDB

Coloana id a fost setată ca cheie primară pentru tabel.

Afișează tabele

Acum că ați creat cele două tabele, va fi bine să vă conformați dacă tabelele au fost create cu succes sau nu. Puteți afișa lista de tabele conținute într-o bază de date rulând următoarea comandă:

SHOW TABLES;

Creați o bază de date și tabele în MariaDB

Captura de ecran de mai sus arată că cele două tabele au fost create cu succes în baza de date Demo.

Afișează structura tabelului

Pentru a vedea structura oricărui tabel anume, puteți utiliza comanda DESCRIBE, prescurtată în mod obișnuit ca DESC. Este nevoie de următoarea sintaxă:

DESC TableName;

De exemplu, pentru a vedea structura tabelului numit Book, puteți rula următoarea comandă;

DESC Book;

Creați o bază de date și tabele în MariaDB

Tabelul are două coloane. Pentru a vedea structura tabelului de prețuri, puteți rula următoarea comandă:

DESC Price;

Creați o bază de date și tabele în MariaDB

CRUD și Clauze

INSERT

Pentru a insera date într-un MariaDB tabel, ar trebui să utilizați instrucțiunea INSERT INTO. Această comandă preia sintaxa de mai jos:

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

Sintaxa de mai sus arată că trebuie să specificați coloanele tabelului în care doriți să inserați date, precum și datele pe care trebuie să le inserați.

Să inserăm o înregistrare în tabelul Book:

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

CRUD și Clauze-INSERT

Ați introdus o singură înregistrare în tabel. Introduceți o înregistrare în tabelul de prețuri:

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

CRUD și Clauze-INSERT

Înregistrarea a fost creată.

SELECT

Instrucțiunea SELECT ne ajută să vedem sau să vedem conținutul unui tabel al bazei de date. Pentru a vedea conținutul tabelului Book, de exemplu, trebuie să rulați următoarea comandă:

SELECT * from book;

CRUD și Clauze-INSERT

Acum, vizualizați conținutul tabelului de prețuri:

SELECT * from price;

CRUD și Clauze-INSERT

Inserarea mai multor înregistrări

Este posibil pentru noi să inserăm mai multe înregistrări într-un MariaDB la masă. Pentru a demonstra acest lucru, rulați următorul exemplu:

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

Inserarea mai multor înregistrări

Puteți interoga tabelul pentru a verifica dacă înregistrările au fost introduse cu succes:

SELECT * FROM book;

Inserarea mai multor înregistrări

Înregistrările au fost introduse cu succes. Inserați mai multe înregistrări în tabelul de prețuri rulând acest exemplu:

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

Inserarea mai multor înregistrări

Să confirmăm dacă înregistrările au fost create cu succes:

SELECT * FROM price;

Inserarea mai multor înregistrări

UPDATE

Comanda UPDATE ne ajută să modificăm sau să modificăm înregistrările care au fost deja introduse într-un tabel. O puteți combina cu clauza WHERE pentru a specifica înregistrarea care urmează să fie actualizată. Iată sintaxa:

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

Comanda UPDATE poate fi combinată și cu clauze precum SET, WHERE, LIMIT și ORDER BY. Veți vedea asta în scurt timp:

Luați în considerare tabelul numit Preț cu următoarele înregistrări:

CRUD și Clauze-UPDATE

Să modificăm prețul cărții cu id-ul 1 de la 200 la 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD și Clauze-UPDATE

Comanda a rulat cu succes. Acum puteți interoga tabelul pentru a vedea dacă modificarea a avut loc:

CRUD și Clauze-UPDATE

Captura de ecran de mai sus arată că modificarea a fost implementată. Luați în considerare cartea de tabel cu următoarele înregistrări:

CRUD și Clauze-UPDATE

Să schimbăm numele cărții cu numele Book MariaDB Cartea 1. Observați că cartea are un id de 1. Iată comanda pentru aceasta:

UPDATE book
SET name = “MariaDB Book1”
WHERE id = 1;

CRUD și Clauze-UPDATE

Verificați dacă modificarea a fost implementată:

CRUD și Clauze-UPDATE

Captura de ecran de mai sus arată că modificarea a fost implementată cu succes.

În exemplele de mai sus, am schimbat doar o coloană la un moment dat. Cu toate acestea, este posibil pentru noi să schimbăm mai multe coloane simultan. Să demonstrăm acest lucru folosind un exemplu.

Să folosim tabelul de prețuri cu următoarele date:

CRUD și Clauze-UPDATE

Să schimbăm atât id-ul, cât și prețul cărții cu un id de 5. Îi vom schimba id-ul la 6 și prețul la 6. Rulați următoarea comandă:

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

CRUD și Clauze-UPDATE

Acum, interogați tabelul pentru a verifica dacă modificarea a fost făcută cu succes:

CRUD și Clauze-UPDATE

Schimbarea a fost făcută cu succes.

Șterge

Folosim comanda DELETE atunci când trebuie să ștergem una sau mai multe înregistrări dintr-un tabel. Iată sintaxa pentru comandă:

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

Luați în considerare tabelul de prețuri cu următoarele înregistrări:

CRUD și Clauze-DELETE

Trebuie să ștergem ultima înregistrare din tabel. Are un id de 6 și un preț de 280. Să ștergem înregistrarea:

DELETE FROM price
WHERE id = 6;   

CRUD și Clauze-DELETE

Comanda a rulat cu succes. Să interogăm tabelul pentru a confirma dacă ștergerea a avut succes:

CRUD și Clauze-DELETE

Rezultatul arată că înregistrarea a fost ștearsă cu succes.

Unde

Clauza WHERE ne ajută să specificăm locația exactă în care trebuie să facem o schimbare. Este folosit împreună cu instrucțiuni precum INSERT, SELECT, UPDATE și DELETE. Luați în considerare tabelul de prețuri cu următoarele date:

CRUD și clauze-Unde

Să presupunem că trebuie să vedem înregistrările în care prețul este mai mic de 250. Putem rula următoarea comandă:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD și clauze-Unde

Au fost returnate toate înregistrările în care prețul este sub 250.

Clauza WHERE poate fi combinată cu instrucțiunea AND. Să presupunem că trebuie să vedem toate înregistrările în tabelul de prețuri unde prețul este sub 250 și id-ul este peste 3. Putem rula următoarea comandă:

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

CRUD și clauze-Unde

Doar o înregistrare a fost returnată. Motivul este că trebuie să îndeplinească toate condițiile care au fost specificate, adică id peste 3 și preț sub 250. Dacă oricare dintre aceste condiții este încălcată, atunci înregistrarea nu va fi returnată.

Clauza poate fi combinată și cu comanda OR. Să înlocuim AND din comanda anterioară cu SAU și să vedem tipul de ieșire pe care o primim:

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

CRUD și clauze-Unde

Acum obținem 2 înregistrări în loc de 1. Acest lucru se datorează faptului că, pentru o înregistrare de calificare, trebuie să îndeplinească doar una dintre condițiile specificate.

Aprecieri

Această clauză este utilizată pentru a specifica modelul de date atunci când accesați datele din tabel în care este necesară o potrivire exactă. Poate fi combinat cu instrucțiunile INSERT, UPDATE, SELECT și DELETE.

Ar trebui să transmiteți tiparul de date pe care îl căutați clauzei și va returna fie adevărat, fie fals. Iată caracterele wildcard care pot fi folosite împreună cu clauza:

  • %: pentru potrivirea fie a 0, fie a mai multor caractere.
  • _: pentru potrivirea unui singur caracter.

Iată sintaxa pentru clauza LIKE:

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

Să demonstrăm cum să folosim clauza cu caracterul joker %. Să folosim tabelul Book cu următoarele înregistrări:

CRUD și clauze-Unde

Trebuie să vedem toate înregistrările în care numele începe cu M. Putem rula următoarea comandă:

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

CRUD și clauze-Unde

Toate înregistrările au fost returnate deoarece numele lor încep cu litera M. Pentru a vedea toate numele care se termină cu 4, puteți rula următoarea comandă:

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

CRUD și clauze-Unde

Un singur nume a fost returnat deoarece este singurul care îndeplinește condiția.

De asemenea, putem înconjura modelul de căutare de caractere joker:

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

CRUD și clauze-Unde

În afară de caracterul metalic %, clauza LIKE poate fi utilizată împreună cu caracterul joker _. Acesta este caracterul de subliniere și va căuta doar un singur caracter.

Să lucrăm cu tabelul de prețuri cu următoarele înregistrări:

CRUD și clauze-Unde

Să verificăm înregistrarea în care prețul este ca 1_0. Executăm următoarea comandă:

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

CRUD și clauze-Unde

A returnat recordul in care pretul este 190. Putem incerca si un alt model:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD și clauze-Unde

Este posibil să folosim clauza LIKE împreună cu operatorul NOT. Aceasta va returna toate înregistrările care nu îndeplinesc modelul specificat. De exemplu:

Să folosim tabelul de prețuri cu următoarele înregistrări:

CRUD și clauze-Unde

Să găsim toate înregistrările în care prețul nu începe cu 2:

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

CRUD și clauze-Unde

Doar o înregistrare nu îndeplinește modelul specificat.

ORDER BY

Această clauză ne ajută să ne sortăm înregistrările în ordine crescătoare sau descrescătoare. Îl folosim cu instrucțiunea SELECT, așa cum se arată mai jos:

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

Este posibil să folosim această clauză fără a adăuga nici partea ASC sau DESC. De exemplu:

Vom folosi tabelul de prețuri cu următoarele înregistrări:

CRUD și clauze-Unde

Rulați următoarea comandă pe tabel:

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

CRUD și clauze-Unde

În comanda de mai sus, am ordonat după preț. Înregistrările au fost ordonate cu prețurile în ordine crescătoare. Asta înseamnă că atunci când nu specificăm ordinea, sortarea se face implicit în ordine crescătoare.

Să rulăm clauza cu opțiunea DESC:

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

CRUD și clauze-Unde

Înregistrările au fost sortate cu prețul în ordine descrescătoare, așa cum am specificat.

Să folosim clauza ORDER BY împreună cu atributul ASC:

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

CRUD și clauze-Unde

Înregistrările au fost comandate dar cu prețurile în ordine crescătoare. Acest lucru este similar cu când folosim clauza ORDER BY fără atribute ASC sau DESC.

DISTINCT

Această clauză ne ajută să eliminăm duplicatele atunci când selectăm înregistrări dintr-un tabel. Aceasta înseamnă că ne ajută să obținem înregistrări unice. Sintaxa sa este prezentată mai jos:

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

Pentru a demonstra acest lucru, vom folosi tabelul de prețuri cu următoarele date:

CRUD și Clauze-DIstinct

Când selectăm coloana de preț din tabel, obținem următorul rezultat:

SELECT price FROM Price;

CRUD și Clauze-DIstinct

Avem două înregistrări cu un preț de 250, creând un duplicat. Trebuie să avem doar înregistrări unice. Le putem filtra prin utilizarea clauzei DISTINCT, după cum se arată mai jos:

SELECT DISTINCT price FROM Price;

CRUD și Clauze-DIstinct

Acum nu avem duplicate în rezultatul de mai sus.

De la

Clauza FROM utilizată pentru preluarea datelor dintr-un tabel al bazei de date. De asemenea, poate ajuta la alăturarea meselor. Iată sintaxa pentru comandă:

SELECT columnNames FROM tableName; 

Pentru a vedea conținutul tabelului cărții, rulați următoarea comandă:

SELECT * FROM price;

CRUD și clauze-De la

Clauza vă poate ajuta să preluați doar o singură coloană dintr-un tabel al bazei de date. De exemplu:

SELECT price FROM Price;

CRUD și clauze-De la

Sarcini avansate

Procedură stocată

O procedură este a MariaDB program căruia îi puteți transmite parametri. O procedură nu returnează valori. Pentru a crea o procedură, folosim comanda CREATE PROCEDURE.

Pentru a demonstra cum să creăm și să apelăm o procedură, vom crea o procedură numită myProcedure() care ne ajută să selectăm coloana cu nume din tabelul de carte. Iată procedura:

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

Sarcini avansate-Procedură stocată

Procedura a fost creată. Pur și simplu am inclus instrucțiunea SELECT în clauzele BEGIN și END ale procedurii.

Acum, putem numi procedura după numele ei, așa cum se arată mai jos:

CALL myProcedure();

Sarcini avansate-Procedură stocată

Procedura returnează coloana de nume a tabelului de carte atunci când este apelată.

Putem crea o procedură care preia un parametru. De exemplu, trebuie să selectăm numele cărții și să filtram folosind id-ul cărții. Pentru aceasta putem crea următoarea procedură:

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

Sarcini avansate-Procedură stocată

Mai sus, am creat o procedură numită myProcedure2(). Această procedură ia un parametru întreg numit book_id, care este id-ul cărții al cărei nume trebuie să-l vedem. Pentru a vedea numele cărții cu un id de 3, putem apela procedura după cum urmează:

CALL myProcedure2(3);

Sarcini avansate-Procedură stocată

Funcţie

Spre deosebire de proceduri, trebuie să transmitem parametrii funcțiilor, iar o funcție trebuie să returneze o valoare. Pentru a crea o funcție în MariaDB, folosim instrucțiunea CREATE FUNCTION. Declarația are următoarea sintaxă:

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;

Parametrii de mai sus sunt descriși mai jos:

Parametru Descriere
Clauza DEFINER Acest parametru este opțional. Dacă nu îl specificați, definitorul va deveni utilizatorul care a creat funcția. Dacă este nevoie să specificați un alt definitor, includeți clauza DEFINER în care user_name va fi definitorul funcției.
nume_funcție Numele care urmează să fie atribuit acestei funcții în MariaDB.
parametru Parametrii transmisi funcției. În timpul creării funcției, toți parametrii sunt tratați ca parametrii IN (mai degrabă decât parametrii OUT/INOUT).
return_datatype Tipul de date al valorii returnate a funcției.
LIMBAJUL SQL Afectează portabilitatea, dar nu și funcția.
DETERMINAT Funcția va returna un rezultat numai atunci când i se oferă un număr de parametri.
NU DETERMINISTICE Este posibil ca funcția să returneze un rezultat diferit atunci când i se oferă un număr de parametri.
CONTINE SQL informeaza MariaDB că această funcție conține SQL. Baza de date nu va verifica dacă acest lucru este adevărat.
FĂRĂ SQL Această clauză nu este utilizată și nu are niciun impact asupra funcției dvs.
CITEȘTE DATE SQL Spune MariaDB că această funcție va folosi instrucțiunile SELECT pentru a citi datele, dar nu va modifica datele.
MODIFICA DATELE SQL Spune MariaDB că această funcție va folosi INSERT, DELETE, UPDATE și altele DDL instrucțiuni pentru modificarea datelor SQL.
declarație-secțiune Aici ar trebui declarate variabilele locale.
sectiune-executabila Codul funcției ar trebui adăugat aici.

Iată un exemplu MariaDB funcţie:

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 ;

Functioneaza in MariaDB

Apoi putem apela funcția de mai sus după cum urmează:

select sumFunc(1000);

Comanda va returna următoarele:

Functioneaza in MariaDB

După ce ați terminat cu o funcție, va fi bine să o ștergeți. Acest lucru este ușor, deoarece trebuie doar să apelați instrucțiunea DROP FUNCTION care are următoarea sintaxă:

DROP FUNCTION function_name;

De exemplu, pentru a elimina funcția numită myFunc, putem rula următoarea comandă:

DROP FUNCTION myFunc;

JOIN

Când trebuie să preluați date din mai multe tabele simultan, utilizați MariaDB SE ALĂTURATE. Aceasta înseamnă că a JOIN lucrează pe două sau mai multe mese. Următoarele trei tipuri de JOINS sunt acceptate în MariaDB:

  • INNER/SIMPLE JOIN
  • LEFT OUTER JOIN/LEFT JOIN
  • RIGHT OUTER JOIN/RIGHT JOIN

Să le discutăm unul câte unul:

INNER JOIN

Îmbinarea interioară returnează toate rândurile din tabelele în care condiția de îmbinare este adevărată. Sintaxa sa este următoarea:

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

De exemplu:

Vom folosi cele două mese, cărți și carte.

Tabelul de carte conține următoarele date:

INNER JOIN

Tabelul de prețuri conține următoarele date:

INNER JOIN

Scopul este de a uni coloana de nume din tabelul Book și coloana de preț din tabelul de preț într-un singur tabel. Acest lucru este posibil cu o îmbinare interioară, după cum se demonstrează mai jos:

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

Comanda returnează următoarele:

INNER JOIN

ÎNTREPRINDERE EXTERIOR STÂNGA

Această îmbinare returnează toate rândurile din tabelul din stânga și numai rândurile în care condiția de îmbinare este adevărată din celălalt tabel. Sintaxa sa este următoarea:

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

Cuvântul cheie OUTER a fost plasat între paranteze drepte deoarece este opțional.

De exemplu:

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

Comanda returnează următoarele:

ÎNTREPRINDERE EXTERIOR STÂNGA

Ultima înregistrare din tabelul de mai sus nu are o valoare potrivită în partea stângă. De aceea a fost înlocuit cu NULL.

UNIRE EXTERIOR DREAPTA

Această îmbinare returnează toate rândurile din tabelul din dreapta și numai rândurile în care condiția de îmbinare este adevărată din celălalt tabel. Sintaxa sa este următoarea:

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

Cuvântul cheie OUTER a fost plasat între paranteze drepte deoarece este opțional.

De exemplu:

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

Comanda returnează următoarele:

UNIRE EXTERIOR DREAPTA

Motivul este că toate rândurile din tabelul din dreapta au fost potrivite cu cele din celălalt tabel. Dacă unele dintre rânduri nu se potrivesc, am avea valori NULL în prima coloană.