exercitii sql

7

Click here to load reader

description

Excercitii sql

Transcript of exercitii sql

Page 1: exercitii sql

Baze de date – RECAPITULARE -

EXERCIŢII RECAPITULATIVE

1. Să se creeze tabelele Facultăţi, Catedre şi Persoane pe baza schemei de mai sus, ţinând cont de următoarele:

FACULTĂŢI

Nume coloană CODFAC DENFAC

Tipul restricţiei Primary key Not null

Tip dată Varchar2 Varchar2

Lungime 5 100

CATEDRE

Nume coloană CODCAT DENCAT CODFAC

Tipul restricţiei Primary key Not null Foreign key - referă tabela Facultăţi, coloana CODFAC

Tip dată Varchar2 Varchar2 Varchar2

Lungime 7 40 5

PERSOANE

Nume coloană CODP NUME FUNCŢIA DATAANG CODCAT

Tipul restricţiei Primary key Check Foreign key - referă tabela Catedre, coloana CODCAT

Tip dată Number Varchar2 Varchar2 Date Varchar2

Lungime 3 30 5 7

Atributul FUNCŢIA poate lua valorile: Prof (profesor), Conf (conferenţiar), Lect (lector), Asist (asistent), Prep (preparator)

1

Page 2: exercitii sql

Baze de date – RECAPITULARE -

2. Să se redenumească tabela Persoane în Angajati.

3. Să se adauge în tabela Angajati coloana Salariu, având tipul Number(4).

4. Să se adauge în tabela Angajati o restricţie de integritate având numele VerificaSalariu asupra câmpului Salariu, care să nu permită introducerea de valori mai mici decât 1000 si mai mari decât 5000.

5. Modificaţi proprietăţile câmpului DenFac din tabela Facultati, astfel încât lungimea acestuia să fie de 60

6. Dezactivaţi restricţia de integritate VerificaSalariu existentă în tabela Angajati.

7. Să se adauge în tabele următoarele informaţii:

FACULTĂŢI

CODFAC DENFAC

CSIE Cibernetica, Statistica si Informatica Economica

CIG Contabilitate si Informatica de Gestiune

COM Comert

CATEDRE

CODCAT DENCAT CODFAC

IE Informatica Economica CSIE

CIB Cibernetica Economica CSIE

EM Economie Matematica CSIE

STAT Statistica si Previziune Economica CSIE

ANGAJATI

CODP NUME FUNCŢIA DATAANG CODCAT SALARIU

1 Ionescu Prof 12-NOV-1994 IE 2200

2 Popescu Prof CIB 2000

3 Georgescu Asist 23-APR-2002 IE 1000

4 Stanescu Conf 10-OCT-2001 EM 1400

5 Tudor Lect IE 1500

6 Zaharia Prep 04-FEB-2005 EM 900

8. În tabela Angajati modificaţi în Marinescu numele angajatului cu Codp egal cu 3 (câmpul Nume).

9. În tabela Angajati modificaţi în Lect funcţia angajatului cu Codp egal cu 4 (câmpul Functia).

2

Page 3: exercitii sql

Baze de date – RECAPITULARE -

10. În tabela Angajati creşteţi cu 10% salariile angajaţilor care au în prezent salariul mai mic decât 1400 (câmpul Salariu).

11. În tabela Angajati modificaţi codul catedrei (câmpul CodCat) angajatului cu Codp egal cu 4 astfel încât să fie acelasi cu codul catedrei unde este încadrat angajatul cu Codp egal cu 2, utilizând clauza SELECT.

12. Să se afişeze toate informaţiile despre Facultati.

13. Să se afişeze numele şi funcţia tuturor angajatilor, ordonaţi descrescător după nume.

14. Să se afişeze angajaţii al căror nume incepe cu litera S.

15. Să se afiseze numele asistenţilor şi lectorilor (funcţiile sunt codificate prin Asist, respectiv Lect).

16. Să se creeze o tabelă virtuală având numele PersonalCatedre, care să conţină pentru fiecare angajat de la catedrele cu codul IE şi CIB: numele, funcţia şi denumirea catedrei.

17. Să se afişeze salariile maxim, minim şi mediu pentru toate persoanele angajate după anul 2000.

18. Să se afişeze numărul de persoane de la catedra cu CodCat egal cu IE.

19. Să se afişeze salariul mediu pentru fiecare catedră. (gruparea se va face în funcţie de codul catedrei)

20. Să se afişeze salariul mediu corespunzător fiecărei funcţii, numai în cazul în care acesta depăşeşte 1200.

21. Să se afişeze informaţii despre persoanele angajate la aceeaşi catedră ca şi Ionescu.

22. Să se afişeze persoanele care au salariul mai mare decât salariul mediu.

23. Să se afişeze denumirea catedrei şi numărul de persoane de la fiecare catedră, cu excepţia catedrei de Informatică Economică şi numai pentru acele catedre care au mai mult de o persoană.

24. Să se afişeze pentru fiecare funcţie numărul de angajaţi.

25. Ştergeţi tuplul corespunzător codului Codp egal cu 2.

3

Page 4: exercitii sql

Baze de date – RECAPITULARE -

1. Să se creeze tabelele Facultăţi, Catedre şi Persoane pe baza schemei de mai sus, ţinând cont de următoarele:

create table facultati(codfac varchar2(5),denfac varchar2(100) not null,constraint pk_fac primary key(codfac));

create table catedre(codcat varchar2(7),dencat varchar2(30) not null,codfac varchar2(5),constraint pk_cat primary key(codcat),constraint fk_fac foreign key(codfac) references facultati(codfac));

create table persoane(codp number(3),nume varchar2(30),functia varchar2(5),dataang date,codcat varchar2(7),constraint pk_pers primary key(codp),constraint fk_cat foreign key(codcat) references catedre(codcat),constraint ck_functia check(functia in('Prof','Conf','Lect','Asist','Prep')));

2. Să se adauge în tabele următoarele informaţii:

insert into facultati values ('CSIE','Cibernetica, Statistica si Informatica Economica');insert into facultati values ('CIG','Contabilitate si Informatica de Gestiune');insert into facultati values ('COM','Comert');

insert into catedre values ('IE','Informatica Economica','CSIE');insert into catedre values ('CIB','Cibernetica Economica','CSIE');insert into catedre values ('EM','Economie Matematica','CSIE');insert into catedre values ('STAT','Statistica si Previziune Economica','CSIE');

insert into angajati values ('1','Ionescu','Prof',to_date('12-nov-1994','dd-mon-yyyy'),'IE','2200');insert into angajati values ('2','Popescu','Prof',null,'CIB','2000');insert into angajati values ('3','Georgescu','Asist',to_date('23-apr-2002','dd-mon-yyyy'),'IE','1000');insert into angajati values ('4','Stanescu','Conf',to_date('10-oct-2001','dd-mon-yyyy'),'EM','1400');insert into angajati values ('5','Tudor','Lect',null,'IE','1500');insert into angajati values ('6','Zaharia','Prep',to_date('04-feb-2005','dd-mon-yyyy'),'EM','900');

4