Академический Документы
Профессиональный Документы
Культура Документы
Obiective:
Scopul lectiei:
În aceasta lectie veti învata cum sa inserati înregistrari într-o tabela, sa
reactualizati (modificati) înregistrarile existente în tabela si sa stergeti înregistrari dintr-o
tabela. Veti mai învata si cum sa controlati tranzactii cu comenzile COMMIT,
SAVEPOINT si ROLLBACK.
Limbajul de manipulare a datelor (DML) este partea de baza a SQL. Când doriti
sa adaugati, sa modificati sau sa stergeti date dintr-o baza de date, executati o comanda
DML.
O colectie de comenzi DML care formeaza o unitate logica de lucru se numeste
tranzactie.
1
Considerati o baza de date din domeniul bancar. Atunci când un client al bancii
doreste sa transfere bani dintr-un depozit într-un cont curent, tranzactia ar putea consta în
3 operatii separate: scade suma din depozit, creste suma din contul curent, înregistreaza
tranzactia în jurnalul de tranzactii. Serverul Oracle trebuie sa garanteze ca toate cele 3
comenzi SQL sunt executate în asa fel încât sa mentina echilibrul necesar între conturi.
Atunci când, din anumite cauze, una dintre comenzile tranzactiilor de mai sus nu se
executa, atunci celelalte comenzi ale tranzactiilor trebuie sa fie anulate.
“...insereaza o noua
Adaugarea
Adaugareaunei
uneinoi
noiînregistrari
înregistrariîntr-un
într-untabel
înregistrare în baza de
tabel
date DEPT ...”
50DEVELOPMENTDETROITNoua înregistrare
50DEVELOPMENTDETROITNoua înregistrare
DEPT
DEPT
DEPTNODNAMELOC10ACCOUNTINGNEW DEPT
DEPTNODNAMELOC10ACCOUNTINGNEWDEPTNODNAMELOC10ACCOUNTINGNEW
YORK20RESEARCHDALLAS30SALESCHICAGO40OPERATIONSBOSTON
YORK20RESEARCHDALLAS30SALESCHICAGO
YORK20RESEARCHDALLAS30SALESCHICAGO40OPERATIONSBOSTON
40OPERATIONSBOSTON50DEVELOPMENTDET
ROIT
Graficul de mai sus ilustreaza adaugarea unui nou departament în tabelul DEPT.
COMANDA
COMANDAINSERT
INSERT
Puteti
Puteti adauga
adauga noi
noi înregistrari
înregistrari într-un
într-un tabel
tabel folosind
folosind comanda
comanda
INSERT.
INSERT.
INSERT
INSERT INTO
INTO tabel
tabel[(coloana
[(coloana[,coloana...]
[,coloana...])])]
VALUES
VALUES (valoare
(valoare[,valoare...]
[,valoare...]););
Folosind
Folosind aceasta
aceasta sintaxa,
sintaxa, sese poate
poate insera
insera inin tabel,
tabel, doar
doar oo
înregistrare
înregistrareodata
odata
2
Prin intermediul comenzii INSERT se pot introduce noi înregistrari într-un tabel.
În descrierea sintaxei:
tabel este numele tabelului (bazei de date).
coloana este numele coloanei din tabelul respectiv.
valoare este valoarea corespunzatoare coloanei.
Nota : Folosind clauza VALUES, aceasta comanda adauga numai câte un rând odata la
un tabel.
Inserarea
Inserareaunor
unornoi
noiînregistrari
înregistrari
Inserarea
Inserareaunei
uneinoi
noiînregistrari
înregistraricontinând
continândvalori
valoripentru
pentrufiecare
fiecarecoloana.
coloana.
Valorile se dau în ordinea prestabilita a coloanelor din tabel.
Valorile se dau în ordinea prestabilita a coloanelor din tabel.
Precizarea
Precizareacoloanelor
coloaneloreste
esteoptionala.
optionala.
SQL>INSERT
SQL>INSERTINTO
INTO dept(deptno,
dept(deptno,dname,
dname,loc)
loc)
22 VALUES
VALUES (50,
(50, ‘DEVELOPMENT’,DETROIT’);
‘DEVELOPMENT’, DETROIT’);
Valorile
Valorilede
detip
tipcaracter
caractersau
saudata
datatrebuie
trebuieîncadrate
încadratede
deghilimele
ghilimelesimple.
simple.
Deoarece se poate insera o noua înregistrare care contine valori pentru fiecare
coloana, lista coloanelor nu este necesara în sintaxa INSERT.
Totusi, daca aceasta nu este precizata, valorile trebuiesc enumerate conform
ordinii coloanelor din tabel.
3
Inserarea
Inserareadedeînregistrari
înregistraricu cuvalori
valoride
deNULL
NULL
SQL>INSERT
SQL>INSERT
Metoda implicita: INTO
INTO coloanei
Omiterea dept(deptno,
dept(deptno,
din lista. dname)
dname)
Metoda
22 implicita:
VALUES Omiterea coloanei din
(60, lista.
‘MIS’);
VALUES (60, ‘MIS’);
11row created.
row created.
SQL>INSERT
Metoda explicita:
SQL>INSERT
Metoda INTO
explicita:Specificarea
Specificarea dept
INTO cuvântuluidept cheie
cuvântului cheieNULL.
NULL.
22 VALUES
VALUES (70,
(70, ‘FINANCE’,NULL);
‘FINANCE’, NULL);
11row created.
row created.
Metode de inserare a valorilor NULL:
Metoda Descriere
Implicita Omiteti coloanei din lista.
Explicita Specificati cuvântul cheie NULL în lista de dupa VALUES.
Specificati sirul vid (‘’) în lista de dupa VALUES; numai pentru siruri de
caractere si pentru valori de tip data.
SQL>INSERT
SQL>INSERTINTO Inserarea emp(empno, ename,
ename,job,
job,mgr,
INTOInserareaunor valori
valorispeciale
emp(empno,
unor speciale mgr,
22 hiredate, sal, comm, deptno)
hiredate, sal, comm, deptno)
33 VALUES
Functia (7196,
(7196,‘GREEN’, ‘SALESMAN’,
FunctiaSYSDATE
VALUES SYSDATEfurnizeaza
furnizeaza data
datasisitimpul
‘GREEN’, curent
‘SALESMAN’,
timpul curent
7782, SYSDATE, 2000, NULL,
7782, SYSDATE, 2000, NULL, 10);10);
11row
rowcreated.
created.
Inserarea de valori speciale folosind functii SQL:
Se pot folosi pseudocoloane pentru a introduce valori speciale în tabele.
4
SQL> SELECT empno, ename, job, hiredate, comm
2 FROM emp
3 WHERE empno = 7196;
Inserarea
Inserareaunor
unorvalori
valorispecifice
specificede
detip
tipdata
datacalendaristica
calendaristica
SQL>INSERT
Adaugarea unui INTO
INTO emp
Adaugarea unuinou
nouangajat:
SQL>INSERT angajat: emp
22 VALUES
VALUES (2269,
(2269,‘AROMANO’,
‘AROMANO’,‘SALESMAN’,7782,
‘SALESMAN’,7782,
TO_DATE(‘FEB-3 , 1997’, 'MON DD,
TO_DATE(‘FEB-3 , 1997’, 'MON DD, YY'), YY'),
1300,
1300,NULL,
NULL,10);
10);
11row
rowcreated.
created.
EMPNO
EMPNO ENAME JOB MGR
ENAME JOB MGR HIREDATE
HIREDATE SAL SAL COMMCOMM
DEPTNO
Verificarea adaugarii:
DEPTNO
Verificarea
________ ____adaugarii:
________ ________________ ______ ______________ ______ __________ __________
__
2296
2296 AROMANO
AROMANO SALESMAN
SALESMAN 7782 7782 01-DEC-97 1300
01-DEC-97 1300
1010
5
Inserarea de valori folosind variabile de substitutie:
Inserare de valori folosind variabile de substitutie
Se poate scrieInserare
o comanda de INSERT
valori folosind
care sa variabile de substitutie
permita utilizatorului sa adauge valori
interactiv folosind
SQL>INSERT variabilele de substitutie
INTOprindept(deptno, SQL*Plus.
dname, loc)
Crearea
Crearea2unui
unui script
SQL>INSERT
Exemplul
script interactiv
de maiINTO folosirea
dept(deptno,
sus înregistreaza
interactiv prin folosirea variabilelor
dname,
informatia de
pentru
variabilelor de substitutie
loc)
un departament
substitutie SQL*Plus
în tabelul
SQL*Plus
VALUES
DEPT.2 NumarulVALUES (&department_id,
(&department_id,
departamentului, numele ‘&department_name’,
‘&department_name’,
si locatia sunt cerute interactiv utilizatorului.
33 Pentru valori de tip data calendaristica
'&location');
'&location');sau sir de caractere, ampersandul si numele
variabilei sunt încadrate de ghilimele simple (apostroafe).
Enter
Entervalue
valuefor
fordepartment_id:
department_id:80
80
Enter
Enter value for department_name:EDUCATION
value for department_name: EDUCATION
Enter value for location: ATLANTA
Enter value for location: ATLANTA
11row
rowcreated.
created.
ACCEPT
ACCEPT Creareadepartment_id
unui script
department_id PROMPT
cu 'Introduceti
interactiv
PROMPT 'Introduceti
Crearea unui
numarul script cu interactiv
departamentului:'
numarul departamentului:'
ACCEPT
ACCEPT memoreaza department_name
valoarea
ACCEPTmemoreaza valoarea într-o PROMPT
PROMPT'Introduceti
variabila
department_name 'Introduceti
ACCEPT numele într-o variabila
departamentului:'
PROMPT
PROMPT afiseaza textul specificat.
numele
afiseaza textullocation departamentului:'
specificat.
ACCEPT
ACCEPT location PROMPT'Introduceti
PROMPT 'Introducetiorarul:'
orarul:'
INSERT
INSERTINTO
INTO dept(deptno,
dept(deptno,dname,
dname,loc)
loc)
VALUES
VALUES (&department_id,'&department_name',
(&department_id,'&department_name',
'&location');
'&location');
6
Exemplul din figura înregistreaza informatia pentru un departament, în tabelul
DEPT. Utilizatorului îi sunt cerute numarul departamentului, numele si locatia acestuia,
folosind mesajele de prompt stabilite în ACCEPT.
1 row created.
Copierea
Copiereaînregistrarilor
înregistrarilordintr-un
dintr-unalt
alttabel
tabel
Folositi
Folositicomanda
comandaINSERT
INSERTcu
cuoosubinterogare.
subinterogare.
SQL>
SQL>INSERT
INSERTINTO INTO managers(id,
managers(id,name,
name,salary,
salary,hiredate)
hiredate)
SELECT empno, ename, sal, hiredate
SELECT empno, ename, sal, hiredate
FROM
FROMemp emp
WHERE
WHEREjob job=='MANAGER';
'MANAGER';
33rows created.
rows created.
Nu
Nusesemai
maifoloseste
folosesteclauza
clauzaVALUES.
VALUES.
Numarul
Numarul coloanelor din clauzaINSERT
coloanelor din clauza INSERTtrebuie
trebuiesasacorespunda
corespundacelor
celordin
din
subinterogare.
subinterogare.
7
Modificarea datelor dintr-un tabel
“...modifica o înregistrare
în tabelul EMP...”
COMANDA
COMANDAUPDATE
UPDATE
Actualizati
Actualizatiînregistrarilor
înregistrarilorexistente
existentefolosind
folosindcomanda
comandaUPDATE.
UPDATE.
UPDATE
UPDATE tabel
tabel
SET
SET coloana
coloana==valoare
valoare[,coloana=valoare
[,coloana=valoare] ]
[WHERE conditie
[WHERE conditie];];
Daca
Dacaeste
estenevoie,
nevoie,sesepot
potmodifica
modificamai
maimulte
multeînregistrari
înregistrarisimultan.
simultan.
8
Puteti avea confirmarea operatiei de modificare prin interogarea tabelului, afisând
rândurile modificate.
Actualizarea
Actualizareaînregistrarilor
înregistrarilordintr-un
dintr-untabel
tabel
Daca
Dacafolositi clauza
clauzaWHERE,
SQL>UPDATE
folositi EMP
WHERE, o anumita înregistrare sau anumite înregistrari sunt
SQL>UPDATE EMPo anumita înregistrare sau anumite înregistrari sunt
modificate
22 SET deptno
modificate SET deptno==20
20
33 WHERE empno = 7768;
WHERE empno = 7768;
11row updated.
row updated.
Daca
Dacaomiteti clauza WHERE,
SQL>UPDATE
omiteti sunt
suntmodificate
employee toate
toateînregistrarile dintr-un tabel.
Dacaclauza
omitetiWHERE,
SQL>UPDATE employee
clauza WHERE, modificate
vor fi modificateînregistrarile dintr-un
toate înregistrarile dintabel.
baza
2
de date.
2 SET
SET deptno = 20;
deptno = 20;
14 rows updated.
14 rows updated.
SQL>SELECT ename, deptno
2 FROM employee;
ENAME DEPTNO
______ ______
KING 20
BLAKE 20
CLARK 20
JONES 20
MARTIN 20
ALLEN 20
TURNER 20
...
14 rows selected.
9
Actualizarea
Actualizareaînregistrarilor
înregistrarilorfolosind
folosind
subinterogari
subinterogari dupa mai multecâmpuri
dupa mai multe câmpuri
Modifica
Modificapentru
pentruangajatul
angajatulnumarul
numarul7698
7698departamentul
departamentulsisislujba
slujbaastfel
astfel
încât sa
SQL>
încât coincida
sa UPDATE
coincidacu cele ale angajatului
emp
cu cele ale numarul 7499.
angajatului numarul 7499.
SQL> UPDATE emp
SET
SET (job,
(job,deptno)
deptno)==
(SELECT
(SELECTjob,
job,deptno
deptno
FROM emp
FROM emp
WHERE
WHEREempno
empno==7499)
7499)
WHERE
WHERE empno = 7698;
empno = 7698;
11row updated.
row updated.
Actualizarea
Actualizareaînregistrarilor
înregistrarilorfolosind
folosindvalori
valoridintr-un
dintr-unalt
alttabel
tabel
Folositi
Folositi subinterogari
subinterogari înîn comenzi
comenzi UPDATE
UPDATE pentru pentru aa actualiza
actualiza
SQL> UPDATE
înregistrariledintr-un
SQL> UPDATE employee
tabel pe baza
employeevalorilor din alt tabel
înregistrariledintr-un
SET tabel pe baza
deptno = valorilor
(SELECT din alt tabel
deptno
SET deptno = (SELECT deptno
FROM
FROMemp emp
WHERE
WHEREempnoempno==7788)
7788)
WHERE
WHERE job =
job = (SELECT job
(SELECT job
FROM
FROMemp emp
WHERE
WHEREempnoempno==7788);
7788);
22row updated.
row updated.
10
Actualizarea înregistrarilor folosind valori dintr-un alt tabel:
Actualizarea
Actualizareaînregistrarilor:
înregistrarilor:
Incalcarea
Incalcarea constrângeriide
constrângerii deintegritate
integritate
SQL>UPDATE
SQL>UPDATE emp
emp
22 SET
SET deptno
deptno==55
55
33 WHERE deptno = 10;
WHERE deptno = 10;
UPDATE
UPDATE emp emp
**
ERROR
ERRORatatlineline11
ORA-02291:
ORA-02291:integrity
integrityconstraint
constraint(USR.EMP_DEPTNO_FK)
(USR.EMP_DEPTNO_FK)
violated - parent key not found
violated - parent key not found
Departamentul
Departamentulcu
cunumarul
numarul55
55nu
nuexista.
exista.
Daca încercati sa atribuiti unui câmp o valoare care este legata de o constrângere
de integritate, va rezulta o eroare.
În exemplul de mai sus, departamentul cu numarul 55 nu exista în tabelul parinte,
DEPT, si astfel veti obtine eroarea parent key violation ORA-02291.
Nota: Constrângerile de integritate asigura ca datele adera la un set predefinit de
reguli. O lectie urmatoare va dezvolta acest subiect mai pe larg.
11
Stergerea
Stergereaînregistrarilor
înregistrarilordintr-un
dintr-untabel
tabel
OO anumita
anumita înregistrare
înregistrare sau
sau anumite
anumite înregistrari
înregistrari sunt
sunt sterse
sterse daca
daca folositi
folositi clauza
clauza
WHERE.SQL>DELETE
WHERE. FROM department
SQL>DELETE FROM department
22 WHERE
WHERE dname
dname=='DEVELOPMENT';
'DEVELOPMENT';
11row deleted.
row deleted. COMANDA
COMANDADELETE DELETE
Puteti
Puteti
DELETEsterge
stergeînregistrari
înregistrari
[FROM] existente
existentedintr-un
dintr-untabel
tabel tabelfolosind
folosindcomanda
comanda
Toate DELETE
DELETE.
înregistrarile [FROM]
dintr-un tabel sunt stersetabel
daca omiteti clauza WHERE.
DELETE.
[WHERE
Toate înregistrarile
[WHERE conditie];
dintr-un tabel sunt sterse daca omiteti clauza WHERE.
conditie];
SQL>DELETE
SQL>DELETE FROM FROM department;
department;
44rows
rowsdeleted.
deleted.
Stergerea înregistrarilor:
Stergerea
Stergereaunei
uneiînregistrari
înregistraridintr-un
dintr-untabel
tabel
DEPT
DEPT
DEPTNODNAMELOC10ACCOUNTINGNEW
DEPTNODNAMELOC10ACCOUNTINGNEW
YORK20RESEARCHDALLAS30SALESCHICAGO40OPERATIONSBOSTON50DEVELOPMENTDETROIT60MIS. .
YORK20RESEARCHDALLAS30SALESCHICAGO40OPERATIONSBOSTON50DEVELOPMENTDETROIT60MIS. .
.
.
DEPT
DEPTNODNAMELOC10ACCOUNTINGNEW
YORK20RESEARCHDALLAS30SALESCHICAGO40OPER
ATIONSBOSTON60MIS. . .
12
13
Puteti sterge anumite înregistrari prin specificarea clauzei WHERE în comanda
DELETE. Exemplul de mai sus sterge departamentul DEVELOPMENT din tabelul
DEPARTMENT. Va puteti asigura ca stergerea s-a facut corect, încercând afisarea
rândurilor sterse printr-un SELECT.
SQL> SELECT *
2 FROM department
3 WHERE dname = 'DEVELOPMENT';
no rows selected.
Exemplu:
Stergeti toti cei angajati dupa data de 1 Ianuarie, 1997.
SQL> DELETE FROM emp
2 WHERE hiredate > TO_DATE('01.01.97', 'DD.MM.YY');
1 row deleted.
Daca ati omis clauza WHERE, toate rândurile din tabel vor fi sterse. Cel de-al
doilea exemplu din figura sterge toate rândurile din tabelul DEPARTMENT, deoarece nu
a fost specificata nici o clauza WHERE.
Stergerea
Stergereaînregistrarilor
înregistrarilorfolosind
folosindvalori
valoridintr-un
dintr-unalt
alttabel
tabel
Folositi
Folositisubinterogari
subinterogariînîncomanda
comanda DELETE
DELETEpentru
pentruaasterge
stergeînregistrarile
înregistrarile
dintr-un
dintr-un tabel pe baza valorilor din alt
tabel pe baza valoriloremployee tabel
din alt tabel
SQL>
SQL>DELETE
DELETE FROM FROM employee
22 WHERE
WHERE deptno
deptno==
33 (SELECT
(SELECTdeptno
deptno
44 FROM dept
FROM dept
55 WHERE
WHEREdname
dname=='SALES');
'SALES');
66rows deleted.
rows deleted.
14
În exemplul de mai jos se încearca stergerea departamentului cu numarul 10 din
tabelul DEPT, dar aceasta provoaca o eroare, deoarece numarul de departament este
folosit ca si cheie externa în tabelul EMP. Daca înregistrarea parinte pe care încercati sa o
stergeti are înregistrari fii, atunci veti primi un mesaj de eroare: child record found
violation ORA - 02292.
Stergerea
Stergereaînregistrarilor:
înregistrarilor:
Incalcarea
Incalcarea constrângeriide
constrângerii deintegritate
integritate
SQL>DELETE
SQL>DELETE FROM
FROM dept
dept
22 WHERE
WHERE deptno
deptno==10;
10;
DELETE
DELETE FROM
FROM dept
dept
**
ERROR
ERRORatatlineline11
ORA-02292:
ORA-02292:integrity
integrityconstraint
constraint(USR.EMP_DEPTNO_FK)
(USR.EMP_DEPTNO_FK)
violated - child record found
violated - child record found
NuNuputeti
putetisterge
stergeooînregistrare
înregistrarecare
carecontine
contineoocheie
cheieprimara
primarafolosita
folositacacacheie
cheieexterna
externa
înînalt tabel.
alt tabel.
Tranzactii
15
16
Tipuri de tranzactii
Tip Descriere
Limbaj de manipulare Consta din orice numar de comenzi DML pe care serverul Oracle le
a datelor (DML) trateaza ca o singura entitate sau unitate logica de lucru.
17
Avantajele COMMIT si ROLLBACK
ROLLBACK to Savepoint A
ROLLBACK
Comanda Descriere
18
Procesarea implicita a tranzactiilor
Stare Circumstante
Comanda DDL sau DCL
Commit automat Iesire normala din SQL*Plus, fara o comanda COMMIT sau
ROLLBACK explicita
Salvarea modificarilor:
Fiecare modificare efectuata în timpul tranzactiei este temporara pâna când apare
un 'commit' (pâna la 'salvarea' tranzactiei).
19
Starea datelor înainte de COMMIT sau ROLLBACK
20
Salvarea
Salvareamodificarilor
modificarilor
SQL>UPDATE
Faceti
Facetimodificarile.
SQL>UPDATE
modificarile. emp
emp
22 SET
SET deptno
deptno==10
10
33 WHERE
WHERE empno = 7782;
empno = 7782;
11row updated.
row updated.
Salvati
Salvatimodificarile
modificarile
SQL>COMMIT;
SQL>COMMIT;
Commit
Commitcomplete.
complete.
Exemplu:
Creati un nou departament ADVERTISING cu cel putin un angajat. Salvati modificarile
facute.
SQL> COMMIT;
Commit complete.
21
Starea
Stareadatelor
datelordupa
dupaROLLBACK
ROLLBACK
Anulati
Anulatimodificarile
modificariletemporare
temporarefacute
facutefolosind
folosindcomanda
comandaROLLBACK.
ROLLBACK.
Modificarile asupra datelor sunt pierdute.
Modificarile asupra datelor sunt pierdute.
Starea
Stareaanterioara
anterioaraaadatelor
dateloreste
esterefacuta.
refacuta.
Protectia
Protectia asupra înregistrarilor implicateeste
asupra înregistrarilor implicate esteridicata.
ridicata.
SQL> DELETE
SQL> DELETE FROM FROM employee;
employee;
14 rows deleted.
14 rows deleted.
SQL>
SQL>ROLLBACK;
ROLLBACK;
Rollback
Rollbackcomplete.
complete.
Exemplu:
Încercând sa stergeti o înregistrare din tabelul TEST, puteti sterge accidental întreg
tabelul. Puteti corecta greseala, iar apoi sa dati comenzile corecte si sa salvati
modificarile.
22
Anularea modificarilor pâna la un savepoint:
Anularea
Anulareamodificarilor
modificarilorpîna
pînalalaun
unpunct
punctmarcat
marcat(Marker)
(Marker)
Creati
Creati un
un marcaj
marcaj înîn tranzactia
tranzactia curenta
curenta folosind
folosind comanda
comanda
SAVEPOINT.
SAVEPOINT.
Anulati
Anulati modificarile
modificarile pîna
pîna lala acel
acel marcaj
marcaj folosind
folosind comanda
comanda
ROLLBACK
ROLLBACK TO SAVEPOINT.
TO SAVEPOINT.
SQL>
SQL>UPDATE
UPDATE. .. .. .
SQL>
SQL>SAVEPOINT
SAVEPOINTupdate_done;
update_done;
Savepoint created.
Savepoint created.
SQL>
SQL>INSERT.
INSERT.. .. .
SQL>
SQL>ROLLBACK
ROLLBACKTO TOupdate_done;
update_done;
Rollback complete.
Rollback complete.
Se poate anula o parte din tranzactie printr-un rollback implicit daca este detectata o
eroare la executia unei comenzi. Daca o singura comanda DML esueaza în timpul
executiei unei tranzactii, efectul ei este anulat printr-un rollback la nivel de comanda, dar
schimbarile facute de comenzile DML anterioare în tranzactie nu vor fi anulate. Ele pot fi
salvate (commited) sau anulate (rolled back) în mod explicit de catre utilizator.
Oracle executa o comanda COMMIT implicita înainte si dupa orice comanda DDL.
23
Deci, chiar daca comanda voastra DDL nu se executa cu succes, nu puteti anula
comenzile anterioare pentru ca serverul a executat un commit (a salvat modificarile).
Terminati-va tranzactiile explicit, prin executarea unei comenzi COMMIT sau
ROLLBACK.
Consistenta la citire
Consistenta la citire:
24
• Versiunea originala mai veche a datelor din segmentul rollback este scris
înapoi în tabel.
• Toti utilizatorii vad baza de date asa cum era înainte de a începe
tranzactia.
Protejarea unei baze de date Oracle este automatizata în întregime si nu necesita actiuni
din partea utilizatorului. Implicit, protejarea are loc pentru toate comenzile SQL cu
exceptia lui SELECT. Mecanismul implicit de protectie în Oracle foloseste în mod
automat cel mai mic nivel aplicabil de restrictionare, astfel furnizând cel mai mare grad
de concurenta existent, precum si integritate maxima a datelor. Oracle permite si
protejarea datelor manual de catre utilizator.
Modurile de protectie
25
Rezumat
Comanda Descriere
Rezumat:
Puteti manipula datele dintr-o baza de date utilizând comenzile: INSERT, UPDATE si
DELETE.
Puteti controla modificarile datelor utilizând comenzile: COMMIT, SAVEPOINT si
ROLLBACK.
Serverul Oracle garanteaza o vedere consistenta a datelor în orice moment.
Protejarea poate fi implicita sau explicita.
În aceste exercitii, veti adauga noi înregistrari la tabelul MY_EMPLOYEE, veti actualiza
si sterge date din tabel si va veti controla tranzactiile.
26
Exercitii:
27