Baze de date – RECAPITULARE -
EXERCIŢII RECAPITULATIVE 1 1. Creaţ reaţii tabe tabela la Dep conform machetei următoare:
Nume coloană Tipul restricţiei
ID
Denumire
Primar !e
Tip dată Num"er #arc$ar% Lun&ime ' %( Departamente, %) Intr Introodu ducceţi *nre *nre&&istr istrăări *n ta" ta"ela ela Dep prel prelu+ u+nd nd date date din din ta"e ta"ela la Departamente incluz+nd doar c+mpurile de care aeţi neoie . id_department, denumire_departament /) CREATE TABLE 0ep 3. Creaţ reaţii tabe tabela la Ang conform machetei următoare:
Nume coloană Tipul ipul res restric tricţi ţiei ei
ID
Prenume
Nume
Dep_ID
Prim Primaar !e !e
1orei&n !e - re2eră ta"ela Dep, coloana ID Tip dată Num"er #arc$ar% #arc$ar% Num"er Lun&ime ' %( %( ' 4. Adău&aţi coloana Varsta *n ta"ela Ang a+nd a+nd tipul Num"er.%/) 5. Adă Adău&aţi u&aţi restricţia restricţia de inte&ritate inte&ritate Verifica_varsta care să nu permită introducerea *n c+mpul Varsta a unor alori mai mici de 34 5i mai mari dec+t 6() 6. 0ezactiaţi restricţia de inte&ritate Verifica_varsta) 7. 7odi2icaţi proprietăţile c+mpului Nume ast2el *nc+t lun&imea acestuia să 2ie de 89) 8. 7odi2icaţi numele ta"elei Ang *n *n Ang2) 9. Creaţi ta"ela Salariati "az "azată pe stru struct ctuura ta"e ta"ele leii Angajati , prel prelu+ u+nd nd toat toatee *nre&istrările) 10.Adăuaţi 10. Adăuaţi următoarele !nrei"trări !nrei"trări !n tabela Salariati: 3 :teen
; o n&
: ;
(3()3%8)>(6'
3'-96-3?4'
A0@PRE:
%>999
9)3
?9
% Neena
;oc$
N;
(3()3%8)>(64
%3-9?-3?4?
A0@#P
3'999
9)3
399
?9
8 Le
a a n
LAAN
(3()3%8)>(6?
38-93-3??8
A0@#P
3'999
9)%
399
?9
11. 7odi2icaţi *n o$n prenumele an&aDatului cu id_angajat e&al e&al cu 8 .c+mpul prenume/) 1#. 7odi2icaţi *n AAN mailul an&aDatului cu id_angajat e&al e&al cu 8 .c+mpul email /) /) 13. Cre5teţi Cre5teţi cu 39 salariile salariile an&aDaţil an&aDaţilor or care au *n prezent salariul salariul mai mic dec+t dec+t %999 %99999
.c+mpul salariul /) /) 14. 7odi2icaţi *n A0@PRE: codul 2uncţiei .c+mpul id_functie/ an&aDatului cu id_angajat e&al cu %) 15. 7odi2icaţ 7odi2icaţii comisionu comisionull .c+mpul .c+mpul comision/ salariatului cu id_angajat e&al e&al cu % ast2el *nc+t *nc+t să 2ie e&al e&al cu comisi comisionu onull salari salariatu atului lui id_angajat e&al cu 8, utiliz+nd clauza SELE! ) 16. Fter&eţi tuplul corespunzător codului id_angajat e&al e&al cu 3) Exerciţii recapitulative 2
3
Baze de date – RECAPITULARE -
:cripturi creare 5i populare ta"eleG $ttpGHH"d)ase)roH:=B0@IHCreare)sl $ttpGHH"d)ase)roH:=B0@IHInserare)sl FIRME C<01IR7A
0EN1IR7A
L
C
AGENTI C<0A=ENT NU7EA=ENT 0ATAAN= CMEN!I NRC<7 C<01IR7A RIN"CM NRC<7 C<0PR<0U: PR"U#E C<0PR<0U: 3) %) 8) >)
C<0A=ENT CANT
0ENPR<0U:
0ATANA:T J
PRET U7
J
TER7ENLI#R
:T
:a se adau&e la ta"ela 1IR7E coloana c$%&'i(cal varc)ar2*+, Codul 2iscal al tuturor 2irmelor este 3%8 :a se dezactieze c)eia pri-ara a ta"elei A=ENTI) Cum eplicaţi eroarea primităK :a se introducă următoarea *nre&istrare in ta"ela A=ENTIG
'2',George Alina',to_date('feb 3,04','mon dd,yy'),to_date('jan 23,44','mon dd,yy'),'BANAT','INGIN!','2'" Cum eplicaţi eroarea primităK < puteţi corectaK
() :ă se creeze ta"ela 2irme@muntenia a+nd aceea5i structură ca ta"ela 2irme 5i care să conţină doar 2irmele din 7UNTENIA .create ta"le 2irme@muntenia as select 2rom 2irme M$ere zonaO7UNTENIAO/ 6) A&entul 8 realizează o nouă comandă de napolitane .(99 "uc/ de la 2irma (9) .%IN:ERT/ ') :ă se 5tear&ă a&enţii an&aDaţi *n %99>) Cum eplicaţi eroarea primităK 4) A&entul 8 are aceea5i 2uncţie ca 5i a&entul 3 .UP0ATEQ:ELECT/ ?) :e du"lează stocul pentru napolitane 39) :e realizează o aproizionare cu (899 pac 5ereţele 33) :a se actualizeze um 5i stocul produsului 888 cu um si stocul produsului cu codul 333 .UP0ATEQ:ELECT/ 3%) 1inalizaţi tranzacţia 38) :ă se eempli2ice implementarea operatorului de proiecţie pe ta"ela 2irme 3>) :ă se eempli2ice implementarea operatorului de selecţie pe ta"ela comenzi 3() :ă se a2i5eze produsele ce au U7 "uc 2olosind 5i o 2uncţie la niel de *nre&istrare 36) :ă se a2i5eze produsele 333 precum 5i cele care au U7 pac 3') :ă se a2i5eze a&enţii din BANAT 5i 7 3?) :ă se a2i5eze cea mai recentă comandă %9) :ă se a2i5eze produsele care stocul mai mare dec+t media stocurilor %3) :ă se a2i5eze produsele care nu au 2ost comandate %%) :ă se a2i5eze NU7EA=ENT 5i 0ATA comenzii pentru a&enţii care au dat comenzi %8) :ă se a2i5eze NRC<7 5i 0EN1IR7A pentru 2irmele care au *nc$eiat comenzi precum 5i 0EN1IR7A celor pentru care nu s-au *nc$eiat comenzi %
Baze de date – RECAPITULARE -
%>) :ă se 5tear&ă produsele care nu au 2ost comandate .0ELETEQ:ELECT/ %() :ă se a2i5eze NRC<7, 0ENPR<0U:, U7, PRET pentru 2iecare RAN0C<7 al comenzii 899 Exerciţii recapitulative . :cripturi creare 5i populare ta"eleG $ttpGHH"d)ase)roH:uport%9de%9seminarH:=B03:E7HCreare)sl )ttp/00%a(er$0#up$rt324%e324(e-i5ar0#G6"1#EM0I5(erare(7l FIRME C<01IR7A
0EN1IR7A
L
C
AGENTI C<0A=ENT NU7EA=ENT 0ATAAN= CMEN!I NRC<7 C<01IR7A RIN"CM NRC<7 C<0PR<0U: PR"U#E C<0PR<0U:
C<0A=ENT CANT
0ENPR<0U:
0ATANA:T J
PRET U7
J
TER7ENLI#R
:T
3) :ă se a2i5eze cantitatea totală comandată din 2iecare produs %) :ă se a2i5eze cantitatea totală comandată din 2iecare produs care are stoculS3999 .(9 . =R) :ă se a2i5eze comenzile alcătuite din două produse .RIN0C<7, =R .
8
Baze de date – RECAPITULARE -
3) :ă se creeze ta"elele "acult#$i , atedre 5i Persoane pe "aza sc$emei de mai sus, ţin+nd cont de următoareleG FACULT8ŢI Nume coloană
%D"A
Tipul restricţiei
Primar !e Not null
Tip dată
#arc$ar%
#arc$ar%
Lun&ime
(
399
CATE"RE Nume coloană
%DA!
DENA!
%D"A
Tipul restricţiei
Primar !e
Not null
1orei&n !e - re2eră ta"ela "acult#$i , coloana %D"A
Tip dată
#arc$ar%
#arc$ar%
#arc$ar%
Lun&ime
'
>9
(
PER#ANE Nume coloană
%DP
N&'E
Tipul restricţiei
Primar !e
Tip dată
Num"er
#arc$ar%
#arc$ar%
Lun&ime
8
89
(
DEN"A
"&N(IA
DA!AAN)
C$ec!
%DA!
1orei&n !e - re2eră atedre, ta"ela coloana %DA! 0ate
#arc$ar% '
Atri"utul "&N(IA poate lua alorileG Pr$' .pro2esor/, C$5' .con2erenţiar/, Lect .lector/, A(i(t .asistent/, Prep .preparator/ #reate table fa#$ltati (#odfa# %ar#&ar2(), denfa# %ar#&ar2(00) not n$ll,
>
Baze de date – RECAPITULARE -
#ontraint *+_fa# *rimary +ey(#odfa#)) #reate table #atedre (#od#at %ar#&ar2(-), den#at %ar#&ar2(30) not n$ll, #odfa# %ar#&ar2(), #ontraint *+_#at *rimary +ey(#od#at), #ontraint f+_fa# foreign +ey(#odfa#) referen#e fa#$ltati(#odfa#)) #reate table *eroane (#od* n$mber(3), n$me %ar#&ar2(30), f$n#tia %ar#&ar2(), dataang date, #od#at %ar#&ar2(-), #ontraint *+_*er *rimary +ey(#od*), #ontraint f+_#at foreign +ey(#od#at) referen#e #atedre(#od#at), #ontraint #+_f$n#tia #&e#+(f$n#tia in('.rof','/onf','e#t','Ait','.re*')))
%) :ă se redenumească ta"ela Persoane *n Angajati ) ALTER TABLE Persoane RENA7E T< Angajati RENA7E Persoane T< Angajati 8) :ă se adau&e *n ta"ela Angajati coloana Salariu, a+nd tipul Num"er.>/) ALTER TABLE An&aDati A00 .:alariu Num"er.>// >) :ă se adau&e *n ta"ela Angajati o restricţie de inte&ritate a+nd numele VerificaSalariu asupra c+mpului Salariu, care să nu permită introducerea de alori mai mici dec+t 3999 si mai mari dec+t (999) ALTER TABLE An&aDati A00 C
DEN"A
C:IE
Ci"ernetica, :tatistica si In2ormatica Economica
CI=
Conta"ilitate si In2ormatica de =estiune
C<7
Comert
CATE"RE %DA!
DENA!
%D"A (
Baze de date – RECAPITULARE -
IE
In2ormatica Economica
C:IE
CIB
Ci"ernetica Economica
C:IE
E7
Economie 7atematica
C:IE
:TAT
:tatistica si Preiziune Economica
C:IE
ANGA9ATI %DP
N&'E
"&N(IA
DA!AAN)
%DA!
SALA*I&
3
Ionescu
Pro2
3%-N<#-3??>
IE
%%99
%
Popescu
Pro2
CIB
%999
8
=eor&escu
Asist
%8-APR-%99%
IE
3999
>
:tanescu
Con2
39-
E7
3>99
(
Tudor
Lect
IE
3(99
6
Ja$aria
Prep
E7
?99
9>-1EB-%99(
inert into fa#$ltati %al$e ('/1I','/iberneti#a, 1tatiti#a i Informati#a #onomi#a') inert into fa#$ltati %al$e ('/IG','/ontabilitate i Informati#a de Geti$ne') inert into fa#$ltati %al$e ('/','/omert') inert into inert into inert into inert into
#atedre %al$e ('I','Informati#a #onomi#a','/1I') #atedre %al$e ('/IB','/iberneti#a #onomi#a','/1I') #atedre %al$e ('','#onomie atemati#a','/1I') #atedre %al$e ('1TAT','1tatiti#a i .re%ii$ne #onomi#a','/1I')
inert into angajati %al$e ('','Ione#$','.rof',to_date('25no%5664','dd5mon5yyyy'),'I','2200') inert into angajati %al$e ('2','.o*e#$','.rof',n$ll,'/IB','2000') inert into angajati %al$e ('3','George#$','Ait',to_date('235a*r52002','dd5mon5yyyy'),'I','000') inert into angajati %al$e ('4','1tane#$','/onf',to_date('05o#t5200','dd5mon5yyyy'),'','400') inert into angajati %al$e ('','T$dor','e#t',n$ll,'I','00') inert into angajati %al$e ('7','8a&aria','.re*',to_date('045feb5200','dd5mon5yyyy'),'','600')
4) Wn ta"ela Angajati modi2icaţi *n 7arinescu numele an&aDatului cu odp e&al cu 8 .c+mpul Nume/) UP0ATE Angajati :ET Nume X7arinescuO ERE odp+?) Wn ta"ela Angajati modi2icaţi *n Lect 2uncţia an&aDatului cu odp e&al cu > .c+mpul "unctia/) UP0ATE Angajati :ET 1unctia XLectO ERE odp+.39) Wn ta"ela Angajati cre5teţi cu 39 salariile an&aDaţilor care au *n prezent salariul mai mic dec+t 3>99 .c+mpul Salariu/)
6
Baze de date – RECAPITULARE -
33) Wn ta"ela Angajati modi2icaţi codul catedrei .c+mpul odat / an&aDatului cu odp e&al cu > ast2el *nc+t să 2ie acelasi cu codul catedrei unde este *ncadrat an&aDatul cu odp e&al cu %, utiliz+nd clauza SELE! ) 3%) :ă se a2i5eze toate in2ormaţiile despre "acultati ) 38) :ă se a2i5eze numele 5i 2uncţia tuturor an&aDatilor, ordonaţi descrescător după nume) 3>) :ă se a2i5eze an&aDaţii al căror nume incepe cu litera :) 3() :ă se a2iseze numele asistenţilor 5i lectorilor .2uncţiile sunt codi2icate prin Asist , respecti Lect /) 36) :ă se creeze o ta"elă irtuală a+nd numele Personalatedre, care să conţină pentru 2iecare an&aDat de la catedrele cu codul IE 5i CIBG numele, 2uncţia 5i denumirea catedrei) 3') :ă se a2i5eze salariile maim, minim 5i mediu pentru toate persoanele an&aDate după anul %999) 34) :ă se a2i5eze numărul de persoane de la catedra cu odat e&al cu IE) 3?) :ă se a2i5eze salariul mediu pentru 2iecare catedră) .&ruparea se a 2ace *n 2uncţie de codul catedrei/ %9) :ă se a2i5eze salariul mediu corespunzător 2iecărei 2uncţii, numai *n cazul *n care acesta depă5e5te 3%99) %3) :ă se a2i5eze in2ormaţii despre persoanele an&aDate la aceea5i catedră ca 5i Ionescu) %%) :ă se a2i5eze persoanele care au salariul mai mare dec+t salariul mediu) %8) :ă se a2i5eze denumirea catedrei 5i numărul de persoane de la 2iecare catedră, cu ecepţia catedrei de In2ormatică Economică 5i numai pentru acele catedre care au mai mult de o persoană) %>) :ă
se
a2i5eze
pentru
2iecare
2uncţie
numărul
%() Fter&eţi tuplul corespunzător codului odp e&al cu %) angajati %al$e ('7','8a&aria','.re*',to_date('045feb5200','dd5mon5yyyy'),'','600')
'
de
an&aDaţi)