Sunteți pe pagina 1din 3

BAZE DE DATE – SEMINAR 3

___________________________________________________________________________

ACTUALIZAREA TABELELOR - COMENZI LMD


(Data Manipulation Language – Limbaj de Manipulare a Datelor)
Comanda Scop
INSERT Adauga o noua inregistrare in tabela
UPDATE Modifica valorile unor inregistrari din tabele
DELETE Sterge inregistrari din tabele
MERGE Actualizeaza o tabela in functie de anumite conditii
SELECT Regaseste inregistrari in tabele sau vederi (view).
Dupa actualizarea datelor se va utiliza comanda SELECT * FROM nume_tabela; pentru a
vizualiza rezultatele!

ADAUGAREA INREGISTRARILOR – COMANDA INSERT


Inregistrarile se pot adauga in tabele in mai multe moduri:
- precizand explicit in sintaxa comenzii valorile
- cu ajutorul variabilelor de substitutie
- pe baza valorilor din alte tabele

a) Precizarea explicita a valorilor introduse se realizeaza cu comanda:


INSERT INTO nume_tabela VALUES (lista de valori pentru fiecare coloana in ordinea in
care sunt declarate coloanele in tabela);
Atentie! Trebuie precizate valori pentru toate coloanele tabelei.

Vezi scriptul pentru adaugarea inregistrarilor in tabelele utilizate ca exemplu.


Descarcati de pe site scriptul de adaugare
https://bd.ase.ro/Media/Default/BD/ScriptBD.txt

O varianta a acestei comenzi este urmatoarea:


INSERT INTO nume_tabela (lista de coloane) VALUES (lista de valori pentru fiecare
coloana);

Exemplul 1. Sa creeze tabela salariati pe baza tabelei angajati fara a prelua si inregistrarile
(doar structura) si sa se adauge un nou angajat

b) Adaugarea inregistrarilor pe baza valorilor din alte tabele:


INSERT INTO nume_tabela SELECT */lista de coloane
FROM tabela_sursa
[WHERE conditie];

Exemplul 2. Sa se adauge in tabela salariati toti angajatii din tabela angajati care lucreaza in
departamentele 20, 30 si 50. Si sa se finalizeze tranzactia (salvarea modificarii).

c) Utilizarea variabilelor de substitutie pentru adaugarea inregistrarilor pe baza


valorilor introduse de utilizator de la tastatura:
INSERT INTO nume_tabela (lista coloane) VALUES (&valoare_coloana1,
&valoare_coloana2,...);

1
BAZE DE DATE – SEMINAR 3
___________________________________________________________________________

Exemplul 3. Sa se adauge in tabela salariati un angajat ale carui date sunt introduse de
utilizator de la tastatura

Atentie! Pentru data_angajare se va utiliza functia de conversie TO_DATE.


Ex: TO_DATE('jan 20, 2005','mon dd, yyyy')

MODIFICAREA DATELOR – COMANDA UPDATE


Sintaxa comenzii este:
UPDATE nume_tabela SET nume_coloana = valoare
[WHERE conditie];

Exemplul 4. Sa se creasca cu 100 salariul angajatilor din tabela salariati care au salariul mai
mic decat 3000:

Exemplul 5. Sa se actualizeze salariul angajatilor al caror manager are id = 122 cu salariul


angajatului cu id = 125.

Exemplul 6. Sa se actualizeze salariul si comisionul angajatilor din tabela salariati cu salariul


si comisionul anagajatului cu id_angajat = 167 din tabela angajati, doar pentru angajatii care
au salariul mai mic decat salariul angajatului cu id = 173 din tabela angajati si care lucreaza in
departamentul 50.

STERGEREA DATELOR – COMANDA DELETE


Sintaxa comenzii este:
DELETE FROM nume_tabela
WHERE conditie;

Exemplul 7. Sa se stearga angajatii din tabela salariati care au id_manager egal cu 122 sau
123.

Exemplul 8. Sa se sterga angajatii din tabela salariati angajati inainte de anul 1999.

Exemplul 9. Sa se sterga toti angajatii din tabela salariati. Sa se anuleze tranzactia.

2
BAZE DE DATE – SEMINAR 3
___________________________________________________________________________

ACTUALIZAREA DATELOR CU COMANDA MERGE

Sintaxa comenzii este:


MERGE INTO nume_tabela USING nume_tabela_sursa
ON (conditia_de_legatura)
WHEN MATCHED THEN
UPDATE SET nume_coloana=valoare
WHEN NOT MATCHED THEN
INSERT VALUES (lista_valori);

Exemplul 10. Sa se actualizeze tabela salariati astfel incat toti salariatii din tabela salariati sa
aiba salariile egale cu cei din tabela angajati, iar pentru cei care nu sunt in tabela salariati sa se
adauge valorile coloanelor (id_angajat, nume, salariul) din tabela sursa agajati. Sa se numere
inregistrarile din cele doua tabele si sa se explice diferenta. Sa se finalizeze tranzactia.

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