Sunteți pe pagina 1din 59

Universitatea Constantin Brncui din Trgu-Jiu

Facultatea de Inginerie i Dezvoltare Durabil


Departamentul de Automatic, Energie, Mediu i Dezvoltare Durabil

Baze de date

Lect.dr. Adrian Runceanu

copyright@www.adrian.runceanu.ro

Curs 7
Limbajul SQL

28.03.2016

Curs - BAZE DE DATE

copyright@www.adrian.runceanu.ro

Limbajul SQL
Capitolul 7
1. Limbajul de manipulare al datelor (LMD)
1.1. Adugare o nou nregistrare
1.2. Actualizarea datelor dintr-o tabel
1.3. tergerea tuplurilor dintr-o tabel
1.4. Instruciunea Merge
2. Limbajul de control al datelor (LCD). Tranzacii

28.03.2016

Curs - BAZE DE DATE

copyright@www.adrian.runceanu.ro

7.1. Limbajul de manipulare al datelor


(LMD)
Limbajul de manipulare al datelor este
nucleul limbajului SQL.
Cnd dorii s adugai, s actualizai, sau s
tergei date din baza de date, executai comenzi
DML(Data Manipulation Language).
O colecie de comenzi DML care formeaz o
unitate logic reprezint o tranzacie.

28.03.2016

Curs - BAZE DE DATE

copyright@www.adrian.runceanu.ro

7.1. Limbajul de manipulare al datelor


(LMD)
n acest curs ne ocupm de limbajul de
manipulare al datelor (DML) care ne permite:
1. s adugm
2. s modificm
3. sau s distrugem datele din baza de date
Oracle 12c conine urmtoarele funcii:
1. INSERT
2. UPDATE
3. DELETE
4. MERGE
28.03.2016

Curs - BAZE DE DATE

copyright@www.adrian.runceanu.ro

Limbajul SQL
Capitolul 7
1. Limbajul de manipulare al datelor (LMD)
1.1. Adugarea unei noi nregistrari
1.2. Actualizarea datelor dintr-o tabel
1.3. tergerea tuplurilor dintr-o tabel
1.4. Instruciunea Merge
2. Limbajul de control al datelor (LCD). Tranzacii

28.03.2016

Curs - BAZE DE DATE

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Sintaxa este:
INSERT INTO tabela [ ( coloana [ , coloana . . . ])]
VALUES ( valoare [, valoare . . . ]);
tabela numele tabelei
coloana numele coloanei din tabela
valoare valoarea corespunztoare coloanei
Not: Se poate aduga o singur linie o dat.
28.03.2016

Curs - BAZE DE DATE

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Exemplu
S se introduc un nou oras n tabela Departamente.

INSERT INTO departamente (nr_dept, denumire, localitate)


VALUES (50,'FINANCIAR','Bucuresti');

28.03.2016

Curs - BAZE DE DATE

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Deoarece se poate insera o nou linie ce conine valori
pentru fiecare coloan, lista coloanelor nu mai este
necesar n clauza INSERT.
Totui dac nu utilizm lista de coloane, valorile trebuie
s fie listate n ordinea coloanelor din tabel, iar o
valoare trebuie utilizat pentru fiecare coloan.
Pentru o utilizare mai uoar putem folosi comanda
DESCRIBE departamente, care ne afieaz cmpurile
tabelei n ordinea lor, precum i tipul fiecrui cmp.

28.03.2016

Curs - BAZE DE DATE

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Inserarea linilor ce conin valori NULL
Inserarea liniilor ce conin valori NULL se poate
face prin dou metode:
1. metoda implicit: Omiterea unui cmp din lista
cmpurilor existente n tabela respectiv.
INSERT INTO departamente (nr_dept, localitate)
VALUES (50, 'Bucuresti');
Campul DENUMIRE
a fost omis din lista
28.03.2016

Curs - BAZE DE DATE

10

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
2. metoda explicit: Specificarea cuvntului NULL n clauza
VALUES.
INSERT INTO departamente (nr_dept, denumire, localitate)
VALUES (50, NULL, 'Bucuresti');
Campul DENUMIRE este
in lista, dar valoarea
este NULL
28.03.2016

Curs - BAZE DE DATE

11

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Inserarea unor valori speciale
Funcia SYSDATE nregistreaz data curent i ora.

Putem utiliza diferite funcii pentru a insera


valori speciale n tabela noastr.

28.03.2016

Curs - BAZE DE DATE

12

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Exemplu
Insereaz n tabela Angajati datele personale,
precum i data cnd acestea au fost introduse, prin
utilizarea comenzii SYSDATE, care reprezint data
sistemului.

28.03.2016

Curs - BAZE DE DATE

13

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
INSERT INTO angajati (nr_angajat, nume, functie,
manager, data_ang, salariu, comision, nr_dept)
VALUES (7658, 'IONESCU', 'ANALIST', 7566, SYSDATE,
1000, NULL, 20);

28.03.2016

Curs - BAZE DE DATE

14

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Copierea informaiilor dintr-o alt tabel
Se scrie comanda INSERT cu ajutorul unui subquery.
Nu se utilizeaz clauza VALUES.
Potrivii numrul de cmpuri din clauza INSERT cu cel
din subquery.
Se poate folosi clauza INSERT pentru a aduga linii ntro tabel unde valorile sunt dintr-o alt tabel.
n loc de clauza VALUES, folosim un subquery.

28.03.2016

Curs - BAZE DE DATE

15

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Sintaxa
INSERT INTO tabela [ coloana (, coloana) ]
subquery(subcerere);
tabela numele tabelei
coloana numele cmpului din tabel
subquery (subinterogare) subquery-ul care returneaz
cmpurile din cealalt tabel
28.03.2016

Curs - BAZE DE DATE

16

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Numrul de coloane i tipurile de date din lista
cmpurilor din clauza INSERT trebuie s se
potriveasc cu valorile i tipurile de date din
subquery.
Pentru a creea o copie a linilor unei tabele,
vom folosi SELECT * n subquery.
28.03.2016

Curs - BAZE DE DATE

17

copyright@www.adrian.runceanu.ro

7.1.1. Adugare o nou


nregistrare
Exemplu
Se introduc datele din tabela Angajati ntr-o alt
tabel numit Copie_angajati.
INSERT INTO copie_angajati
SELECT * FROM angajati;
Subinterogarea
selecteaza toate
cmpurile tabelei de
unde se preiau date
28.03.2016

Curs - BAZE DE DATE

18

copyright@www.adrian.runceanu.ro

Limbajul SQL
Capitolul 7
1. Limbajul de manipulare al datelor (LMD)
1.1. Adugare o nou nregistrare
1.2. Actualizarea datelor dintr-o tabel
1.3. tergerea tuplurilor dintr-o tabel
1.4. Instruciunea Merge
2. Limbajul de control al datelor (LCD). Tranzacii

28.03.2016

Curs - BAZE DE DATE

19

copyright@www.adrian.runceanu.ro

7.1.2. Actualizarea datelor dintr-o


tabel
Schimbarea liniilor existente folosind clauza
UPDATE.
Sintaxa

UPDATE tabela
SET coloana = valoare
[, coloana = valoare, . . . ]
[WHERE conditie ];
28.03.2016

Curs - BAZE DE DATE

20

copyright@www.adrian.runceanu.ro

7.1.2. Actualizarea datelor dintr-o


tabel
n sintax:
tabela - numele tabelei
coloana - numele coloanei n care vor fi introduse
datele
valoare - valoarea corespunztoare din subquery
(subinterogare)
condiie - identificarea cmpurilor care vor fi
actualizate

28.03.2016

Curs - BAZE DE DATE

21

copyright@www.adrian.runceanu.ro

7.1.2. Actualizarea datelor dintr-o


tabel
Not:
n general se folosete cheia primar pentru a
identifica o linie.
Utilizarea altei coloane poate duce la actualizarea mai
multor linii.
De exemplu ntr-o relaie numita persoane putem
avea de dou sau mai multe persoane cu acelasi
nume.
28.03.2016

Curs - BAZE DE DATE

22

copyright@www.adrian.runceanu.ro

7.1.2. Actualizarea datelor dintr-o


tabel
Exemplu 1
UPDATE angajati
SET functie='VANZATOR', data_angajarii = SYSDATE
WHERE nume = 'IONESCU';
S-au modificat
cmpurile functie si
data_angajarii pentru
angajatul cu numele
specificat
28.03.2016

Curs - BAZE DE DATE

23

copyright@www.adrian.runceanu.ro

7.1.2. Actualizarea datelor dintr-o


tabel
Exemplu 2
UPDATE angajati
SET nr_dept = 70
WHERE nr_angajat = 7499;
S-a modificat nr_dept
pentru angajatul cu
nr_angajat specificat

28.03.2016

Curs - BAZE DE DATE

24

copyright@www.adrian.runceanu.ro

Limbajul SQL
Capitolul 7
1. Limbajul de manipulare al datelor (LMD)
1.1. Adugare o nou nregistrare
1.2. Actualizarea datelor dintr-o tabel
1.3. tergerea tuplurilor dintr-o tabel
1.4. Instruciunea Merge
2. Limbajul de control al datelor (LCD). Tranzacii

28.03.2016

Curs - BAZE DE DATE

25

copyright@www.adrian.runceanu.ro

7.1.3. tergerea tuplurilor dintr-o


tabel
Se pot terge tupluri dintr-o tabel
utiliznd clauza DELETE.
Sintaxa
DELETE [FROM] tabela
[WHERE conditie];
28.03.2016

Curs - BAZE DE DATE

26

copyright@www.adrian.runceanu.ro

7.1.3. tergerea tuplurilor dintr-o


tabel
n sintaxa:
tabela - numele tabelei
condiie - identific liniile care trebuie terse i
este compus din:
1.
2.
3.
4.
5.

nume de cmpuri
expresii
constante
subquery-uri
i operatori de comparaie

28.03.2016

Curs - BAZE DE DATE

27

copyright@www.adrian.runceanu.ro

7.1.3. tergerea tuplurilor dintr-o


tabel
terge anumite tupluri dintr-o tabel
specificnd clauza WHERE n declaraia funciei
DELETE.
Se poate confirma operaia de tergere prin
afiarea tuplurilor terse cu ajutorul declaraiei
lui SELECT.
28.03.2016

Curs - BAZE DE DATE

28

copyright@www.adrian.runceanu.ro

7.1.3. tergerea tuplurilor dintr-o


tabel
n exemplul urmtor terge angajaii care lucreaz
n departamenul 10 din tabela Angajati.
DELETE FROM angajati
WHERE nr_dept = 10;

28.03.2016

Curs - BAZE DE DATE

29

copyright@www.adrian.runceanu.ro

7.1.3. tergerea tuplurilor dintr-o


tabel
Dac se omite clauza WHERE toate cmpurile din
tabel vor fi terse.
Al doilea exemplu terge toate tuplurile(nregistrrile)
din tabela Copie_angajati deoarece nu a fost
specificat clauza WHERE.
DELETE FROM copie_angajati;
28.03.2016

Curs - BAZE DE DATE

30

copyright@www.adrian.runceanu.ro

7.1.3. tergerea tuplurilor dintr-o


tabel
Se pot terge i mai multe linii.
DELETE FROM angajati
WHERE nr_dept IN (10, 20);
S-au sters angajatii care
lucreaza in
departamentele
identificate cu nr_dept
specificate
28.03.2016

Curs - BAZE DE DATE

31

copyright@www.adrian.runceanu.ro

Limbajul SQL
Capitolul 7
1. Limbajul de manipulare al datelor (LMD)
1.1. Adugare o nou nregistrare
1.2. Actualizarea datelor dintr-o tabel
1.3. tergerea tuplurilor dintr-o tabel
1.4. Instruciunea Merge
2. Limbajul de control al datelor (LCD). Tranzacii

28.03.2016

Curs - BAZE DE DATE

32

copyright@www.adrian.runceanu.ro

7.1.4. Instruciunea Merge


Instruciunea MERGE permite inserarea
sau actualizarea condiionat a datelor
ntr-un/dintr-un tabel al bazei de date.

28.03.2016

Curs - BAZE DE DATE

33

copyright@www.adrian.runceanu.ro

7.1.4. Instruciunea Merge


Sintaxa ei simplificat este urmtoarea:
MERGE INTO tabel_destinatie [alias]
USING {tabel_sursa | vizualizare | subinterogare} [alias]
ON (condiie)
WHEN MATCHED THEN
UPDATE
SET coloana_1 = {expr_u1 | DEFAULT}, ,
coloana_n = {expr_un | DEFAULT}
WHEN NOT MATCHED THEN
INSERT (coloana_1,, coloana_n)
VALUES (expr_i1,, expr_in);
28.03.2016

Curs - BAZE DE DATE

34

copyright@www.adrian.runceanu.ro

7.1.4. Instruciunea Merge


Instruciunea efectueaz:
UPDATE dac nregistrarea exist deja n tabel
INSERT dac nregistrarea este nou.
Obs: DEFAULT reprezint valoarea implicit a unei
coloane, dac a fost definit la crearea tabelului.
Altfel este null.

28.03.2016

Curs - BAZE DE DATE

35

copyright@www.adrian.runceanu.ro

7.1.4. Instruciunea Merge


Exemplu

S se tearg din tabelul angajati_pnu (pnu se


alcatuiete din prima liter din prenume i primele dou
din numele studentului) toi angajaii care ctig
comision.
S se actualizeze data angajrii (SYSDATE).
S se introduc sau s actualizeze datele din tabelul
angajati_pnu pe baza tabelului angajati.
La fiecare pas, analizai coninutul tabelului
angajati_pnu.
28.03.2016

Curs - BAZE DE DATE

36

copyright@www.adrian.runceanu.ro

7.1.4. Instruciunea Merge


MERGE INTO angajati_pnu x
USING angajati a
ON ( x.id_angajat = a.id_angajat )
WHEN MATCHED THEN
UPDATE SET
x.nume = a.nume,
x.prenume = a.prenume,
x.email = a.email,
x.numar_telefon = a.numar_telefon,
x.data_angajarii = a. data_angajarii,
x.id_functie = a.id_functie,
x.salariu = a.salariu,
x.comision = a.comision,
x.id_manager = a.id_manager,
x.id_dept = a.dept
28.03.2016

Curs - BAZE DE DATE

37

copyright@www.adrian.runceanu.ro

7.1.4. Instruciunea Merge


WHEN NOT MATCHED THEN
INSERT VALUES (a.id_angajat,
a.nume,
a.prenume,
a.email,
a.numar_telefon,
a.data_angajarii,
a.id_functie,
a.salariu,
a.comision,
a.id_manager,
a.id_dept);
28.03.2016

Curs - BAZE DE DATE

38

copyright@www.adrian.runceanu.ro

Limbajul SQL
Capitolul 7
1. Limbajul de manipulare al datelor (LMD)
1.1. Adugare o nou nregistrare
1.2. Actualizarea datelor dintr-o tabel
1.3. tergerea tuplurilor dintr-o tabel
1.4. Instruciunea Merge
2. Limbajul de control al datelor (LCD). Tranzacii

28.03.2016

Curs - BAZE DE DATE

39

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Procesarea unei Tranzactii

O tranzacie este o operaie asupra unei


baze de date care implic una sau mai
multe modificri n una sau mai multe
tabele.

28.03.2016

Curs - BAZE DE DATE

40

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Exist dou clase de tranzacii:
1. Tranzacii DML (Data Manipulation Language) care conin
un numr oarecare de blocuri DML i pe care ORACLE le
trateaz ca o singur entitate sau o singur unitate logica
de lucru
2. Tranzacii DDL (Data Definition Language) care conin un
singur bloc DDL

28.03.2016

Curs - BAZE DE DATE

41

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Nu pot exista situaii "jumtate de drum" n
timpul execuiei unei tranzactii, aa nct
unele modificri specificate n tranzacie s
fie aplicate bazei de date i altele nu.

Pentru fiecare tranzacie ori toate


modificrile sunt aplicate bazei de date, ori
nici una din modificri nu este ndeplinit
(sunt toate abandonate - discarded ).
28.03.2016

Curs - BAZE DE DATE

42

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii

O tranzacie ncepe cnd prima comand executabil


DML sau DDL este ntlnit i se termin n una din
urmtoarele situaii:
1. ntlnete COMMIT/ROLLBACK
2. Comanda DDL se termin
3. Anumite erori (DEADLOCK)
4. EXIT - ieire din SQL*Plus
5. Eroare sistem
6. Un bloc DDL este executat automat i de aceea implicit
ncheie o tranzacie
7. Dup ncheierea unei tranzacii, urmtorul bloc
executabil SQL va lansa automat urmtoarea tranzacie
28.03.2016

Curs - BAZE DE DATE

43

7.2. Limbajul de control al


datelor (LCD). Tranzacii
Tranzacii
Tip

Descriere
Este constituit din mai multe cereri
Limbajul de
DML pe care serverul ORACLE le
manipulare al datelor
trateaza ca pe o singura entitate sau o
(DML)
unitate logica
Limbajul de definire al Este format dintr-o singura cerere DDL
datelor (DDL)
Limbajul de control al Este format dintr-o singura cerere DCL
datelor (DCL)

28.03.2016

Curs - BAZE DE DATE

44

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii

Permanentizarea Modificrilor
Pentru ca modificrile s rmn permanente, ele
trebuie executate asupra bazei de date.
Comanda COMMIT realizeaz permanentizarea
modificrilor;
Comanda ROLLBACK permite s abandonm sau s
anulm modificrile.
Modificarea/modificrile, executate asupra bazei de
date ntre 2 comenzi COMMIT reprezint o tranzacie.
Pn cnd tranzacia nu este executat, nici una din
modificri nu este vizibil utilizatorilor.
28.03.2016

Curs - BAZE DE DATE

45

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
nlturarea modificrilor nedorite
Modificrile neexecutate pot fi abandonate prin
comanda ROLLBACK.
ROLLBACK va atribui datelor valorile care acestea le
aveau imediat dupa executarea ultimului COMMIT
prin anularea tuturor modificrilor fcute dup
ultimul COMMIT.
28.03.2016

Curs - BAZE DE DATE

46

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Semnificaia tranzaciilor
ORACLE asigur consistena datelor bazat pe
tranzacii.
Tranzaciile dau utilizatorului mai mult flexibilitate i
control la lucrul asupra datelor, i asigur consistena
datelor n cazul unei erori a procesului utilizator sau a
unei erori de sistem.
28.03.2016

Curs - BAZE DE DATE

47

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Tranzaciile ar trebui s conin doar acele comenzi
DML care realizeaz o singur modificare asupra
datelor.
De exemplu un transfer de fonduri (s spunem 1000$)
ntre 2 conturi ar trebui s implice un debit al unui cont
de 1000$ i un credit al altui cont de 1000$.
Ambele aciuni ar trebui s se ncheie cu succes sau s
dea eroare mpreun.
Creditul nu ar trebui executat fr debit.

28.03.2016

Curs - BAZE DE DATE

48

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Controlul tranzaciilor cu instruciuni SQL
Urmtoarele instruciuni SQL sunt utilizate cnd
apar execuii (commit) sau refaceri (rollback):
COMMIT[WORK]
SAVEPOINT nume_savepoint
ROLLBACK[WORK] to [SAVEPOINT] nume_savepoint
De notat c, COMMIT i ROLLBACK sunt instruciuni
(blocuri) SQL.
28.03.2016

Curs - BAZE DE DATE

49

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Cele 3 blocuri SQL utilizate pentru controlul
tranzaciilor sunt explicate mai jos:
Sintaxa: COMMIT[WORK];
Permanentizeaza schimbrile n tranzacia curent
terge toate punctele de salvare (Savepoint) din
tranzacie
Termin tranzacia
Elibereaz toate blocrile (Lock) tranzaciei
Cuvntul cheie WORK este opional
28.03.2016

Curs - BAZE DE DATE

50

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Utilizatorul trebuie s expliciteze sfritul tranzaciei n
programul aplicaie utiliznd COMMIT (sau ROLLBACK).
Dac nu se execut explicit tranzacia i programul se
termin anormal, ultima tranzacie executat va fi
anulat.
Execuii implicite (commit) apar n urmtoarele situaii:
1. nainte de o comand DDL
2. dup o comand DDL
3. la nchiderea normal a unei baze de date

28.03.2016

Curs - BAZE DE DATE

51

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Blocurile DDL cauzeaz mereu execuii (commit) n
timpul execuiei lor.
Dac introducei un bloc DDL dup cteva blocuri
DML, blocul DDL cauzeaz apariia unui commit
naintea propriei execuii, ncheind tranzacia curent.
Astfel dac blocul DDL este executat pn la capat,
este i nregistrat.

28.03.2016

Curs - BAZE DE DATE

52

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
SAVEPOINT
Sintaxa:

SAVEPOINT nume_savepoint
Exemplu:
SAVEPOINT terminare_actualizari
Poate fi utilizat pentru a mpri o tranzacie n
buci mai mici.

28.03.2016

Curs - BAZE DE DATE

53

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Punctele de salvare (savepoints) permit
utilizatorului s rein toat munca sa la orice
moment din timp, cu opiunea de a nregistra mai
trziu totul sau a anula totul sau o parte din ea.
Astfel, pentru o tranzacie lung, se pot salva pri
din ea, pe msura execuiei, la sfrit nregistrnduse sau refcndu-se coninutul iniial.
La apariia unei erori nu trebuie executat din nou
fiecare bloc.
28.03.2016

Curs - BAZE DE DATE

54

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
La crearea unui nou punct de salvare cu acelai
nume ca al unuia dinainte, primul punct este
ters.

Numrul maxim de puncte de salvare pentru


un proces utilizator este implicit 5.
Aceasta limit poate fi schimbat.
28.03.2016

Curs - BAZE DE DATE

55

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
ROLLBACK
ROLLBACK[WORK] to [SAVEPOINT]
nume_punct_salvare
Instruciunea ROLLBACK este utilizat
pentru a reface un lucru (o prelucrare asupra
informatiilor dintr-o baza de date).
28.03.2016

Curs - BAZE DE DATE

56

copyright@www.adrian.runceanu.ro

7.2. Limbajul de control al datelor


(LCD). Tranzacii
Cuvntul cheie "work" este opional.
ntoarcerea la un punct de salvare este de
asemenea optional.
Dac se utilizeaz ROLLBACK fr clauza TO
SAVEPOINT, atunci:
1.
2.
3.
4.

se termina tranzacia
se anuleaz modificrile din tranzacia curent
terge toate punctele de salvare din tranzacie
elibereaz blocrile tranzaciei

28.03.2016

Curs - BAZE DE DATE

57

copyright@www.adrian.runceanu.ro

Probleme propuse
Sa se implementeze problemele propuse in
laboratorul nr.7.

28.03.2016

Curs - BAZE DE DATE

58

copyright@www.adrian.runceanu.ro

ntrebri?

28.03.2016

Curs - BAZE DE DATE

59

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