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:
Pas 4) Acceptați acordul de licență
Apoi faceți clic pe butonul Următorul:
Pas 5) Alege MariaDB server de
Alegeți caracteristicile care urmează să fie instalate și faceți clic pe Următorul
Pas 6) Introduceți parola
În fereastra următoare, vi se va cere să schimbați parola pentru utilizatorul root.
- 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ă.
- După ce ați terminat, faceți clic pe butonul Următorul.
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:
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.
Pas 10) Afișată o bară de progres
Va fi afișată o bară de progres care arată progresul instalării:
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:
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ă.
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:
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;
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;
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;
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));
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));
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;
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;
Tabelul are două coloane. Pentru a vedea structura tabelului de prețuri, puteți rula următoarea comandă:
DESC Price;
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');
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);
Î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;
Acum, vizualizați conținutul tabelului de prețuri:
SELECT * from price;
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');
Puteți interoga tabelul pentru a verifica dacă înregistrările au fost introduse cu succes:
SELECT * FROM book;
Î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);
Să confirmăm dacă înregistrările au fost create cu succes:
SELECT * FROM price;
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:
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;
Comanda a rulat cu succes. Acum puteți interoga tabelul pentru a vedea dacă modificarea a avut loc:
Captura de ecran de mai sus arată că modificarea a fost implementată. Luați în considerare cartea de tabel cu următoarele înregistrări:
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;
Verificați dacă modificarea a fost implementată:
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:
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;
Acum, interogați tabelul pentru a verifica dacă modificarea a fost făcută cu succes:
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:
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;
Comanda a rulat cu succes. Să interogăm tabelul pentru a confirma dacă ștergerea a avut succes:
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:
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;
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;
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;
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:
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%';
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';
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%';
Î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:
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';
A returnat recordul in care pretul este 190. Putem incerca si un alt model:
SELECT * FROM price WHERE price LIKE '_2_';
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:
Să găsim toate înregistrările în care prețul nu începe cu 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
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:
Rulați următoarea comandă pe tabel:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
Î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;
Î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;
Î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:
Când selectăm coloana de preț din tabel, obținem următorul rezultat:
SELECT price FROM Price;
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;
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;
Clauza vă poate ajuta să preluați doar o singură coloană dintr-un tabel al bazei de date. De exemplu:
SELECT price FROM Price;
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; ;
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();
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; ;
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);
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 ;
Apoi putem apela funcția de mai sus după cum urmează:
select sumFunc(1000);
Comanda va returna următoarele:
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:
Tabelul de prețuri conține următoarele date:
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:
Î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:
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:
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ă.