Sunteți pe pagina 1din 4

BAZE DE DATE – SEMINAR 4

___________________________________________________________________________

Exerciţii recapitulative I – LDD, LMD

1. Creaţi tabela Dep conform machetei următoare:

Nume coloană ID Denumire


Tipul restricţiei Primary key
Tip data Number Varchar2
Lungime 7 25

Create table Dep (id number(7) CONSTRAINT Pkey_dep Primary key, denumire
varchar2(25));

2. Introduceţi înregistrări în tabela Dep preluând date din tabela Departamente,


incluzând doar câmpurile de care aveţi nevoie (id_department,
denumire_departament).

Obs: Mai întâi afişaţi pe ecran structura tabelei Departamente.

Insert into Dep select id_departament, denumire_departament from Departamente;

3. Creaţi tabela Ang conform machetei următoare:

Nume coloană ID Prenume Nume Dep_ID


Tipul restricţiei Primary key Foreign key - referă tabela Dep,
coloana ID
Tip data Number Varchar2 Varchar2 Number
Lungime 7 25 25 7

Create table ang (id number(7) CONSTRAINT Pkey_ang Primary key, prenume
varchar2(25), nume varchar2(25), dep_ID number(7),

Constraint fk_ang FOREIGN KEY (dep_ID) references Dep(ID));

4. Adăugaţi coloana Varsta în tabela Ang având tipul Number(2).

Alter Table Ang

Add (varsta number(2));

5. Adăugaţi restricţia de integritate Verifica_varsta care să nu permită introducerea în


câmpul Varsta a unor valori mai mici de 18 şi mai mari decât 65.

1
BAZE DE DATE – SEMINAR 4
___________________________________________________________________________

Alter Table Ang

Add constraint verifica_varsta check (varsta>18 and varsta<65);

6. Dezactivaţi restricţia de integritate Verifica_varsta.

Alter Table Ang

Disable constraint Verifica_varsta;

7. Modificaţi proprietăţile câmpului Nume astfel încât lungimea acestuia să fie de 30.

Alter Table Ang

Modify (nume varchar2(30));

8. Modificaţi numele tabelei Ang în Ang2.

Rename Ang to Ang2;

9. Creaţi tabela Salariati bazată pe structura tabelei Angajati, preluând toate înregistrările.

Create table Salariati As(Select * from Angajati);

10. Adăugaţi următoarele înregistrări în tabela Salariati:

1
Steven Kong SKONG 515.123.4567 17-06-1987 AD_PRES 24000 0.1 90
2
Neena Koch NKOCH 515.123.4568 21-09-1989 AD_VP 17000 0.1 100 90
3
Lex Haan LHAAN 515.123.4569 13-01-1993 AD_VP 17000 0.2 100 90

Insert into Salariati (id_angajat, prenume, nume, email, telefon, data_angajare, id_functie,
Salariul, Comision, Id_manager, Id_departament)

Values (1, 'Steven', 'Kong', 'SKONG', '515.123.4567', TO_DATE('17-06-1987', 'dd-mm-


yyyy'), 'AD_PRES', 24000, 0.1, Null, 90);

Select * from salariati;

Insert into Salariati (id_angajat, prenume, nume, email, telefon, data_angajare, id_functie,
Salariul, Comision, Id_manager, Id_departament)

Values (2, 'Neena', 'Kong', 'NKONG', '515.123.4568', TO_DATE('21-09-1989', 'dd-mm-


yyyy'), 'AD_VP', 17000, 0.1, 100, 90);

Insert into Salariati (id_angajat, prenume, nume, email, telefon, data_angajare, id_functie,
Salariul, Comision, Id_manager, Id_departament)

2
BAZE DE DATE – SEMINAR 4
___________________________________________________________________________

Values (3, 'Lex', 'Haan', 'LHAAN', '515.123.4569', TO_DATE('13-01-1993', 'dd-mm-


yyyy'), 'AD_VP', 17000, 0.2, 100, 90);

11.Modificaţi în John prenumele angajatului cu id_angajat egal cu 3 (câmpul prenume).

Update Salariati

Set prenume = 'John'

where id_angajat = 3;

12. Modificaţi în JHAAN mailul angajatului cu id_angajat egal cu 3 (câmpul email).

Update Salariati

Set email = 'JHAAN'

where id_angajat = 3;

13. Creşteţi cu 10% salariile angajaţilor care au în prezent salariul mai mic decât 20000
(câmpul salariul).

Update Salariati

Set salariul= 1.10*salariul

Where salariul<20000;

14. Modificaţi în AD_PRES codul funcţiei (câmpul id_functie) angajatului cu id_angajat


egal cu 2.

Update Salariati

Set id_functie ='AD_PRES'

where id_angajat=2;

15. Modificaţi comisionul (câmpul comision) salariatului cu id_angajat egal cu 2 astfel


încât să fie egal cu comisionul salariatului id_angajat egal cu 3, utilizând clauza
SELECT.

Update Salariati

Set comision=(Select comision from Salariati where id_angajat=3)

Where id_angajat=2;

16. Ştergeţi tuplul corespunzător codului id_angajat egal cu 1.

3
BAZE DE DATE – SEMINAR 4
___________________________________________________________________________

Delete from Salariati

Where id_angajat=1;

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