Documente Academic
Documente Profesional
Documente Cultură
O bază de date este o colecție organizată de informații structurate sau de date, de obicei stocate
electronic într-un sistem informatic. O bază de date este de obicei controlată de un sistem de gestionare
a bazelor de date. Împreună, datele și sistemele de gestionare a bazelor de date, împreună cu aplicațiile
care le sunt asociate, sunt denumite sisteme de baze de date, deseori prescurtat doar ca bază de date.
Datele din cadrul celor mai comune tipuri de baze de date care funcționează în prezent sunt de
obicei modelate în rânduri și coloane într-o serie de tabele pentru a eficientiza procesarea și interogarea
datelor. Datele pot fi apoi ușor de accesat, gestionat, modificat, actualizat, controlat și organizat.
Majoritatea bazelor de date utilizează un limbaj de interogare structurat (SQL) pentru scrierea și
interogarea datelor.
Bazele de date au evoluat dramatic de la crearea lor la începutul anilor 1960. Bazele de date
navigaționale, cum ar fi baza de date ierarhică (care se baza pe un model arborescent și permitea doar
relații de tip "unul la mai mulți") și baza de date în rețea (un model mai flexibil care permitea relații
multiple), au fost sistemele inițiale utilizate pentru stocarea și manipularea datelor. Deși simple, aceste
sisteme timpurii erau inflexibile. În anii 1980, bazele de date relaționale au devenit populare, urmate de
bazele de date orientate pe obiecte în anii 1990. Mai recent, bazele de date NoSQL au apărut ca răspuns
la creșterea internetului și la nevoia de viteză și de procesare mai rapidă a datelor nestructurate. În
prezent, bazele de date în cloud și bazele de date autonome deschid noi drumuri în ceea ce privește
modul de colectare, stocare, gestionare și utilizer a datelor.
SQL este o abreviere de la Structured Query Language (limbaj structurat de interogare). SQL este
un limbaj standardizat de interogare utilizat pentru a prelua informații din bazele de date. Acesta a fost
conceput inițial de International Business Machine (IBM) în anii '70 și a fost denumit în versiunea sa
originală SEQUEL (Structured English Query Language). De atunci, a devenit limbajul de interogare
preferat pentru sistemele de gestionare a bazelor de date.
Limbajele de interogare sunt limbaje de calculator utilizate pentru a face interogări în baze de
date și sisteme de informații. Suportă bazele de date care sunt răspândite pe mai multe calculatoare
într-o rețea de calculatoare, permițând efectuarea de tranzacții între calculatoarele server și cele client.
Este capabil să gestioneze solicitări simultane din partea mai multor utilizatori care doresc să acceseze
baza de date dintr-o rețea de calculatoare. Un exemplu de aplicare a SQL este pe site-urile web care
permit utilizatorilor să înregistreze informații și apoi să facă actualizări și căutări ulterioare. SQL lucrează
în fundal pentru a se ocupa de tot ceea ce face utilizatorul, deși nu putem vedea acest lucru.
Oferă longevitate.
Comenzi SQL
Ca și alte limbaje de programare, comenzile SQL sunt clasificate în funcție de funcțiile lor. Aceste
funcții includ construirea de obiecte de baze de date, cum ar fi tabele și interogări, manipularea
obiectelor, inserarea de date în tabelele existente, actualizarea datelor existente în tabele, ștergerea
datelor existente din tabele, efectuarea de interogări ale bazei de date, controlul accesului la baza de
date și administrarea generală a bazei de date. Principalele categorii sunt:
Limbajul de definire a datelor (DDL) este format din comenzi SQL care permit utilizatorului să creeze și să
restructureze obiecte ale bazei de date, cum ar fi crearea sau ștergerea unui tabel. Exemple de comenzi
DDL sunt:
Comanda de Create Table (Creare tabel)
Indicii sunt creați pentru a face căutările mult mai rapide. Majoritatea indicilor sunt definiți pe câmpuri
care sunt utilizate în principal pentru căutări, cum ar fi numărul de identificare sau numele de familie.
Vizualizările sunt ca și tabelele, dar nu stochează fizic datele, așa cum o face un tabel. Vizualizările
stochează datele doar temporar.
Limbajul de manipulare a datelor, DML, este format din comenzi SQL utilizate pentru a manipula datele
din cadrul obiectelor unei baze de date relaționale. Există trei comenzi DML de bază enumerate mai jos:
Comanda Insert
Comanda Insert este utilizată pentru a adăuga înregistrări la un tabel din baza de date.
Comanda de actualizare
Comanda de ștergere
Această comandă se utilizează pentru a prelua date din una sau mai multe tabele dintr-o bază de date
sau din alte baze de date.
Comanda de selectare
Aceste comenzi permit utilizatorului să configureze modul în care acesta poate accesa baza de date.
Aceste comenzi DCL sunt utilizate în mod normal pentru a crea obiecte legate de implementarea
limitărilor de acces al utilizatorilor și, de asemenea, pentru a controla distribuția privilegiilor între
utilizatori.
Acestea permit utilizatorului să efectueze audituri și să efectueze analize asupra operațiunilor din cadrul
bazei de date. De asemenea, acestea pot fi utilizate pentru a ajuta la analiza performanței sistemului.
Aceste comenzi permit utilizatorului să gestioneze toate tranzacțiile din baza de date care au loc într-o
anumită perioadă de timp.
COMMIT - această comandă confirmă salvarea tuturor tranzacțiilor din baza de date care au fost
efectuate de către utilizator.
ROLLBACK - această comandă este utilizată pentru a șterge sau a anula toate tranzacțiile din baza de
date efectuate de utilizator.
SAVEPOINT - Se utilizează pentru a crea puncte în cadrul grupurilor de tranzacții în care să fie anulate
sau ROLLBACK
SELECT si FROM – aceasta parte a unei interogări determină ce coloane din date să se afișeze în
rezultate. Există, de asemenea, opțiuni pe care le puteți aplica pentru a afișa date care nu sunt o coloană
de tabel.
Exemplul de mai jos arată trei coloane SELECTed FROM de „student“ tabel și o coloană calculată. Baza
de date stochează studentID, prenume și prenume ale studentului. Putem combina coloanele Prenume
și Numele de familie pentru a crea coloana calculată FullName.
+-----------+-------------------+------------+------------------------+
| studentID | FirstName | LastName | FullName |
+-----------+-------------------+------------+------------------------+
| 1 | Monique | Davis | Monique Davis |
| 2 | Teri | Gutierrez | Teri Gutierrez |
| 3 | Spencer | Pautier | Spencer Pautier |
| 4 | Louis | Ramsey | Louis Ramsey |
| 5 | Alvin | Greene | Alvin Greene |
| 6 | Sophie | Freeman | Sophie Freeman |
| 7 | Edgar Frank "Ted" | Codd | Edgar Frank "Ted" Codd |
| 8 | Donald D. | Chamberlin | Donald D. Chamberlin |
| 9 | Raymond F. | Boyce | Raymond F. Boyce |
+-----------+-------------------+------------+------------------------+
9 rows in set (0.00 sec)
CREATE TABLE - creează un tabel în baza de date. Se pot specifica numele tabelului și coloanele care ar
trebui să fie în tabel.
TABEL ALTER - modifică structura unui tabel. Cum se adăuga o coloană la o bază de date:
CHECK - Constrângerea este utilizată pentru a limita domeniul de valori care pot fi plasate într-o
coloană.
Dacă definim o constrângere pe o singură coloană, aceasta permite numai anumite valori pentru această
coloană. Dacă definim o constrângere pe un tabel, aceasta poate limita valorile din anumite coloane pe
baza valorilor din alte coloane din rând.
Următorul exemplu creează o constrângere pe coloana „Vârstă” când se creează tabelul „Persoane”. In
acest exemplu este pusa constrangerea ca varsta sa fie mai mare de 18 ani.
Pentru a permite denumirea unei constrângeri și pentru definirea unei constrângeri pe mai multe
coloane, se utilizeaza următoarea sintaxă SQL:
WHERE (AND, OR, IN, BETWEEN, LIKE) - Comanda este utilizată pentru a limita numărul de rânduri
returnate.
De exemplu, mai întâi comanda SELECT si rezultatele fără comanda WHERE. Apoi se adauga comanda
WHERE care folosește toate cele cinci calificative de mai sus.
+-----------+------------------------+-----------+---------------------+
| studentID | FullName | sat_score | rcd_updated |
+-----------+------------------------+-----------+---------------------+
| 1 | Monique Davis | 400 | 2017-08-16 15:34:50 |
| 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 |
| 3 | Spencer Pautier | 1000 | 2017-08-16 15:34:50 |
| 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 |
| 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 |
| 6 | Sophie Freeman | 1200 | 2017-08-16 15:34:50 |
| 7 | Edgar Frank "Ted" Codd | 2400 | 2017-08-16 15:35:33 |
| 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 |
| 9 | Raymond F. Boyce | 2400 | 2017-08-16 15:35:33 |
+-----------+------------------------+-----------+---------------------+
9 rows in set (0.00 sec)
Se foloseste comanda WHERE pentru a specifica ce înregistrări se doresc a fi actualizate. Este posibila
actualizarea a unei sau a mai multor coloane odată. Sintaxa este:
UPDATE table_name
SET column1 = value1,
column2 = value2, ...
WHERE condition;
UPDATE Person
SET Name = “Elton John”
WHERE Id = 4;
De asemenea, se pot actualiza coloanele dintr-un table utilizand valori din alte tabele. Se foloseste
comanda JOIN pentru a obtine date din mai multe tabele. Sintaxa fiind:
UPDATE table_name1
SET table_name1.column1 = table_name2.columnA
table_name1.column2 = table_name2.columnB
FROM table_name1
JOIN table_name2 ON table_name1.ForeignKey = table_name2.Key
GROUP BY - permite combinarea randurilor si datelor agregate
HAVING - permite filtrarea datelor cumulate prin comanda GROUP BY, astfel incat utilizatorul sa obtiuna
un set limitat de inregistrari de vizualizat.
Sintaxa HAVING:
AVG () - „Media” este utilizată pentru a calcula media unei coloane numerice din setul de rânduri
returnate de o instrucțiune SQL.
Sintaxa functiei:
+-------------+------------------------+
| AgeOfServer | NonWarrantyPeriod |
+-------------+------------------------+
| 36 | 24 |
| 24 | 12 |
| 61 | 49 |
| 12 | 0 |
| 6 | -6 |
| 0 | -12 |
| 36 | 24 |
| 36 | 24 |
| 24 | 12 |
+-------------+------------------------+
ORDER BY - ofera o modalitate de a sorta setul de rezultate in functie de unul sau mai multe elemente
din sectiunea SELECT.
In urmatorul exemplu comanda sorteaza studentii dupa FullName in ordine descrescatoare. Ordinea de
sortare implicita este ascendenta (ASC), dar pentru a sorta in ordinea opusa (descrescatoare) se
foloseste DESC.
COUNT - va număra numărul de rânduri și va returna acest număr ca o coloană în setul de rezultate.
Numărarea tuturor rândurilor dintr-un tabel (nu este necesară o grupare după)
Numărarea totalurilor unor subseturi de date (necesită o secțiune Group By a declarației)
Această instrucțiune SQL oferă o numărătoare a tuturor rândurilor. Coloana rezultata COUNT poate fi
redenumita folosind comanda AS.
Se pot sterge toate inregistrarile din tabel sau doar cateva. Se foloseste comanda WHERE pentru a se
specifica inregistrarile care se doresc sterse. Sintaxa este:
INNER JOIN - JOIN, numit și INNER JOIN, selectează înregistrările care au valori identice în două tabele.
Sintaxa fiind:
LEFT JOIN - returnează toate rândurile din tabelul din stânga și rândurile corespunzătoare din tabelul din
dreapta. Rândurile din tabelul din stânga vor fi returnate chiar dacă nu există nicio potrivire în tabelul
din dreapta. Rândurile din tabelul din stânga care nu corespund în tabelul din dreapta vor avea valori
nule pentru tabelul din dreapta.
RIGHT JOIN - returnează toate rândurile din tabelul din dreapta și rândurile corespunzătoare din tabelul
din stânga. Spre deosebire de o îmbinare la stânga, aceasta va returna toate rândurile din tabelul din
dreapta chiar dacă nu există nicio potrivire în tabelul din stânga. Rândurile din tabelul din dreapta care
nu au corespondență în tabelul din stânga vor avea valori nule pentru coloanele din tabelul din stânga.
SELECT * FROM A x RIGHT JOIN B y ON y.aId = x.Id
FULL OUTER JOIN - returnează toate rândurile pentru care există o corespondență în oricare dintre
tabele. Astfel, dacă există rânduri în tabelul din stânga care nu au corespondențe în tabelul din dreapta,
acestea vor fi incluse. De asemenea, dacă există rânduri în tabelul din dreapta care nu au corespondențe
în tabelul din stânga, acestea vor fi incluse.
LIKE - este utilizat în cadrul comenzii WHERE sau HAVING (ca parte a GROUP BY) pentru a limita
rândurile selectate la elementele în cazul în care o coloană conține un anumit model de caractere.
+-----------+---------------+-----------+---------------------+
| studentID | FullName | sat_score | rcd_updated |
+-----------+---------------+-----------+---------------------+
| 1 | Monique Davis | 400 | 2017-08-16 15:34:50 |
| 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 |
+-----------+---------------+-----------+---------------------+
2 rows in set (0.00 sec)
Plasarea NOT înainte de LIKE pentru a exclude rândurile cu șirul de caractere în loc să le selectați. Acest
SQL exclude înregistrările care conțin "cer Pau" și "Ted" în coloana FullName.
+-----------+----------------------+-----------+---------------------+
| studentID | FullName | sat_score | rcd_updated |
+-----------+----------------------+-----------+---------------------+
| 1 | Monique Davis | 400 | 2017-08-16 15:34:50 |
| 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 |
| 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 |
| 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 |
| 6 | Sophie Freeman | 1200 | 2017-08-16 15:34:50 |
| 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 |
| 9 | Raymond F. Boyce | 2400 | 2017-08-16 15:35:33 |
+-----------+----------------------+-----------+---------------------+
7 rows in set (0.00 sec)
SQL PLUS
SQL este un limbaj de comenzi pentru comunicarea cu serverul Oracle din orice aplicaţie. Când se
introduce o instrucţiune SQL, aceasta este stocată într-o zonă de memorie numită buffer-ul SQL şi ea va
rămâne în buffer până în momentul introducerii unei noi instrucţiuni.
SQL*Plus este un instrument Oracle care recunoaşte şi trimite instrucţiuni SQL la server pentru execuţie
şi conţine propriul limbaj de comenzi.
SQL SQL*Plus
Este un limbaj pentru comunicarea cu serverul Recunoaste instrucţiuni SQL şi le trimite la server
Oracle pentru accesarea datelor
Este bazat pe standardul ANSI SQL Este o interfaţă proprietate Oracle pentru
executarea instrucţiunilor SQL
Manipulează date şi definiţii de tabele în baze de Nu permite manipularea valorilor în baze de date
date
O instrucţiune se stochează in bufferul SQL pe Este permisă o comandă pe linie şi nu este
una sau mai multe linii memorată în bufferul SQL
Nu are caracter de continuare Foloseşte caracterul (-) pentru continuarea unei
comenzi dacă aceasta nu incape pe o linie
Foloseste un caracter de terminare pentru Nu are nevoie de caractere de terminare. Se
executarea imediată a comenzii execută imediat
Nu pot fi abreviate Pot fi abreviate
Pentru a construi instrucţiuni valide, uşor de citit şi de editat trebuie avute în vedere
următoarele reguli:
Comenzi SQL*Plus
Categorie Scop
DESC[RIBE] numetabel
Alte comenzi:
PL/SQL
PL / SQL este o fuziune a SQL cu trăsături procedurale ale limbajelor de programare. A fost
lansat de Oracle pentru a actualiza caracteristicile SQL. PL SQL este considerat unul dintre limbajele
importante din baza de date Oracle. Este în primul rând o extensie a SQL.
PL / SQL are câteva dintre caracteristicile principale. Acestea sunt enumerate mai jos:
Avantajele PL/SQL
PL / SQL este conectat la SQL. Asistă în SQL dinamic și static. SQL static face operațiuni DML și
controlul tranzacției se face din blocul PL / SQL. SQL dinamic încorporează instrucțiunile DDL în
blocurile PL / SQL.
PL SQL este capabil să trimită întregul bloc de instrucțiuni la baza de date dintr-o dată. Acest
lucru ajută la îmbunătățirea performanței aplicațiilor.
Ajută dezvoltatorii să interogheze, să modifice și să modifice informațiile din baza de date.
Aplicațiile dezvoltate în PL / SQL sunt securizate și acceptă concepte orientate pe obiecte.
PL / SQL poate dezvolta aplicații robuste. Are pachete implicite în SQL.
Acceptă declarația variabilă în cadrul blocurilor. Aceste variabile sunt utilizate în timpul
procesării interogării.
Poate prezenta simultan mai multe înregistrări din mai multe tabele.
PL / SQL se bucură de o combinație solidă cu baza de date Oracle.
De completat:
Bibliografie
https://www.oracle.com/ro/database/what-is-database/
https://phdessay.com/sql-programming-language/
http://cursuri.cs.pub.ro/~radulescu/bd/sql7/oracle2.html
https://ro.ilusionity.com/70-basic-sql-commands-the-list-of-database-queries-and-statements-you-
should-know
http://bd.ac.tuiasi.ro/Doc/laborator/LUCRAREA_2.pdf
https://ro.myservername.com/pl-sql-tutorial-beginners-with-examples-what-is-pl-sql
Cuprins