0% au considerat acest document util (0 voturi)
2 vizualizări3 pagini

Diferente SQL PLSQL

SQL este folosit pentru interogarea și manipularea datelor din baza de date, iar PL/SQL extinde SQL cu logică procedurală, permițând folosirea variabilelor, condițiilor, buclelor și tratării erorilor.

Încărcat de

richtercristina
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
2 vizualizări3 pagini

Diferente SQL PLSQL

SQL este folosit pentru interogarea și manipularea datelor din baza de date, iar PL/SQL extinde SQL cu logică procedurală, permițând folosirea variabilelor, condițiilor, buclelor și tratării erorilor.

Încărcat de

richtercristina
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

Diferențe între SQL și PL/SQL

Document sintetic pentru recapitulare, interviu și lucru practic cu baze de date Oracle

1. Ideea principală
SQL și PL/SQL sunt folosite împreună în ecosistemul Oracle, dar au scopuri diferite. SQL este limbajul
prin care descrii ce date vrei să citești sau să modifici. PL/SQL este limbajul procedural Oracle prin care
scrii logică de programare în jurul instrucțiunilor SQL.
O formulare simplă: SQL răspunde la întrebarea „ce date vreau?”, iar PL/SQL răspunde la întrebarea „ce
pași trebuie executați ca să obțin, verific, modific sau automatizez ceva?”.

2. Tabel comparativ
Criteriu SQL PL/SQL
Tip de limbaj Limbaj declarativ: precizezi rezultatul Limbaj procedural: precizezi pașii,
dorit. condițiile și fluxul execuției.
Scop principal Interogare, inserare, actualizare, Automatizarea logicii de business,
ștergere și definire de obiecte în baza de validări, tratamente de erori, proceduri,
date. funcții, pachete și triggere.
Unitate de execuție O instrucțiune SQL executată individual, Un bloc PL/SQL: DECLARE, BEGIN,
de exemplu SELECT sau UPDATE. EXCEPTION, END.
Control flow Nu are IF, LOOP sau variabile în forma Are IF, CASE, LOOP, WHILE, FOR,
standard folosită pentru query-uri simple. variabile, constante, recorduri și colecții.
Gestionarea erorilor Eroarea este întoarsă direct clientului Are secțiune EXCEPTION pentru
sau aplicației. tratarea controlată a erorilor.
Performanță Foarte eficient pentru operații set-based Eficient pentru logică complexă; poate
pe multe rânduri. deveni lent dacă procesează rând cu
rând fără BULK COLLECT / FORALL.
În practică, cele două nu se exclud. Un dezvoltator Oracle folosește SQL pentru operații asupra datelor și
PL/SQL pentru a organiza acele operații într-un flux controlat, reutilizabil și robust.

Pagina 1
3. SQL: limbajul pentru lucrul direct cu datele
SQL, adică Structured Query Language, este limbajul standard pentru lucrul cu baze de date relaționale.
În Oracle, SQL este folosit pentru citirea datelor, modificarea lor, definirea tabelelor și controlul
tranzacțiilor.
 DQL: SELECT, pentru citirea datelor.
 DML: INSERT, UPDATE, DELETE, MERGE, pentru modificarea datelor.
 DDL: CREATE, ALTER, DROP, TRUNCATE, pentru definirea obiectelor.
 TCL: COMMIT, ROLLBACK, SAVEPOINT, pentru controlul tranzacțiilor.
 DCL: GRANT, REVOKE, pentru drepturi de acces.
Exemplu SQL: obținerea angajaților activi dintr-o țară, cu filtrare și sortare:
SELECT employee_id, first_name, last_name, country
FROM employees
WHERE status = 'Active'
AND country = 'Romania'
ORDER BY last_name;

Punctul forte al SQL este lucrul set-based: baza de date procesează seturi de rânduri, nu doar câte un
rând pe rând. De aceea, pentru operații masive de actualizare sau raportare, o soluție SQL bine scrisă
este de obicei mai simplă și mai rapidă decât o buclă procedurală.

4. PL/SQL: extensia procedurală Oracle


PL/SQL, adică Procedural Language/SQL, este extensia Oracle peste SQL. El permite declararea de
variabile, scrierea de condiții, bucle, proceduri, funcții, pachete, triggere și tratarea erorilor. PL/SQL este
executat în baza de date, aproape de date, ceea ce îl face potrivit pentru logică de business care trebuie
să fie centralizată și reutilizabilă.
Structura de bază a unui bloc PL/SQL este:
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*)
INTO v_count
FROM employees
WHERE status = 'Active';

DBMS_OUTPUT.PUT_LINE('Angajați activi: ' || v_count);


EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Eroare: ' || SQLERRM);
END;

PL/SQL este util când ai nevoie de pași multipli, verificări succesive sau reguli care nu pot fi exprimate
elegant într-o singură instrucțiune SQL. De exemplu: verifici dacă există date, faci o actualizare, inserezi
un log, tratezi o eroare și returnezi un mesaj clar către aplicație.
Totuși, PL/SQL nu trebuie folosit ca înlocuitor pentru SQL. O greșeală frecventă este procesarea rând cu
rând într-o buclă, deși aceeași modificare se putea face printr-un singur UPDATE set-based. Regula
practică: folosește SQL pentru operații pe seturi de date și PL/SQL pentru orchestrat logică, validări și
reutilizare.

Pagina 2
5. Diferențe explicate practic
Cea mai importantă diferență este modul de gândire. În SQL spui: „selectează rândurile care respectă
această condiție”. În PL/SQL spui: „declară variabile, execută acest query, verifică rezultatul, apoi decide
ce pas urmează”.
Exemplu de situație: trebuie să dezactivezi angajații dintr-un anumit fișier și să scrii un log pentru fiecare
caz. Dacă regula este simplă, poți folosi SQL direct:
UPDATE employees
SET status = 'Inactive'
WHERE employee_id IN (SELECT employee_id FROM employees_to_disable);

Dacă însă trebuie să verifici mai multe condiții, să tratezi excepții, să scrii mesaje diferite în log și să
păstrezi codul într-o procedură apelată periodic, PL/SQL devine alegerea naturală.

6. Când alegi SQL și când alegi PL/SQL


Alegi SQL când:
 ai nevoie de un raport sau de o interogare;
 poți exprima regula într-un SELECT, INSERT, UPDATE, DELETE sau MERGE;
 vrei performanță pe volume mari de date, prin operații set-based;
 nu ai nevoie de flux procedural complex.
Alegi PL/SQL când:
 ai nevoie de proceduri, funcții, pachete sau triggere;
 trebuie să tratezi erori controlat cu EXCEPTION;
 ai reguli de business care includ mai mulți pași;
 vrei să centralizezi logica în baza de date și să o refolosești;
 trebuie să procesezi volume mari cu mecanisme precum BULK COLLECT și FORALL.

7. Formulare scurtă pentru interviu


SQL este limbajul folosit pentru a interoga și modifica datele dintr-o bază de date relațională. Este
declarativ: spunem ce rezultat dorim, iar optimizatorul bazei de date decide cum îl obține. PL/SQL este
extensia procedurală Oracle pentru SQL. Cu PL/SQL putem scrie blocuri de cod, proceduri, funcții,
pachete, triggere, variabile, bucle și tratamente de erori. În practică, SQL este ideal pentru operații set-
based, iar PL/SQL este potrivit pentru logică de business, automatizare și reutilizarea codului în baza de
date.

8. Concluzie
SQL și PL/SQL sunt complementare. SQL lucrează direct cu datele și este baza oricărei aplicații
relaționale. PL/SQL adaugă structură procedurală, control, validare și reutilizare. Un dezvoltator bun nu
alege PL/SQL în loc de SQL, ci știe când o regulă trebuie exprimată set-based în SQL și când trebuie
încapsulată într-o procedură, funcție sau pachet PL/SQL.

Pagina 3

S-ar putea să vă placă și