Documente Academic
Documente Profesional
Documente Cultură
BD S3 LMD
BD S3 LMD
___________________________________________________________________________
Exemplu 1. Să creeze tabela salariati pe baza tabelei angajați fără a prelua și înregistrările
(doar structura) și să se adauge un nou angajat.
CREATE TABLE salariati AS SELECT * FROM angajati WHERE 2=3;
INSERT INTO salariati (id_angajat, nume, salariul) VALUES (207, 'Ionescu', 4000);
INSERT INTO salariati (id_angajat, nume, salariul) VALUES (207, 'Popescu', 4200);
SELECT * FROM salariati;
Pagina 1 din 3
BAZE DE DATE – SEMINAR 3
___________________________________________________________________________
Exemplul 2. Să se adauge în tabela salariati toți angajații din tabela angajați care lucrează în
departamentele 20, 30 și 50. Și să se finalizeze tranzacția (salvarea modificării).
INSERT INTO salariati SELECT * FROM angajati
WHERE id_departament IN (20, 30, 50);
SELECT * FROM salariati;
COMMIT;
Exemplul 3. Să se adauge în tabela salariați un angajat ale cărui date sunt introduse de utilizator
de la tastatura.
Atenție! Pentru data_angajare se va utiliza functia de conversie TO_DATE.
Ex: TO_DATE('jan 20, 2005','mon dd, yyyy')
INSERT INTO salariati (id_angajat, nume, data_angajare, salariul)
VALUES ('&id_angajat','&nume', TO_DATE('&data_angajare', 'mon dd, yyyy'), '&salariul');
Exemplul 4. Să se crească cu 100 salariul angajaților din tabela salariați care au salariul
mai mic decât 3000:
UPDATE salariati
SET salariul=salariul+100
WHERE salariul<3000;
SELECT * FROM salariati;
Pagina 2 din 3
BAZE DE DATE – SEMINAR 3
___________________________________________________________________________
Exemplul 10. Să se actualizeze tabela salariați astfel încât toți salariații din tabela salariați să
aibă salariile egale cu cei din tabela angajați, iar pentru cei care nu sunt în tabela salariați să se
adauge valorile coloanelor (id_angajat, nume, salariul) din tabela sursă agajați. Să se numere
înregistrările din cele două tabele și să se explice diferența. Să se finalizeze tranzacția.
MERGE INTO salariati USING angajati
ON (salariati.id_angajat = angajati.id_angajat)
WHEN MATCHED THEN
UPDATE SET salariati.salariul=angajati.salariul
WHEN NOT MATCHED THEN
INSERT (id_angajat, nume, salariul) VALUES (angajati.id_angajat, angajati.nume,
angajati.salariul);
SELECT COUNT (*) FROM salariati;
SELECT COUNT (*) FROM angajati;
COMMIT;
Pagina 3 din 3