Sunteți pe pagina 1din 30

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________

I. BAZE DE DATE Noiuni introductive:


Tipuri de legaturi intre tabele: 1-1 legatura dintre cele doua tabele se face pe baza cheilor primare 1-n cheia primara din tabela parinte se adauga in tabela copil sub forma de cheie externa n-n nu se poate implementa practice si se recurge la adaugarea unei tabele suplimentare care va contine cheile primare ale tabelelor initiale si campuri referitoare la asocierea dintre tabelele parinti. Cheia primara din tabela intermediara va fi o cheie compusa. Structura bazei de date uti izata ca e!e"# u - Se considera activitatea de evidenta a comenzilor incheiate de o societate comerciala cu diverse firme prin intermediul agentilor anga ati in cadrul societatii. Comenzile contin produse aflate in depozitul societatii! iar pentru fiecare produs se cunoaste in permanenta stocul existent. $IRME C"#$%&'( #)*$%&'( +"C C"*T,(*C( -"*(

A%ENTI C"#(.)*T */')(.)*T #(T((*. #(T(*(ST -"*( $/*CT%) C"#S)$

&'MENZI *&C"' C"#$%&'(

C"#(.)*T

#(T(

RAND&'M *&C"' C"#0&"#/S

C(*T

0&)T

T)&')*+%1&

(R'D)SE C"#0&"#/S

#)*0&"#/S

/'

ST"C

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________

II. N)&*E)* S+*,(*)S


+imba ul S+* Structured +uer- *an.ua.e este un limba standard de interogare a bazelor de date. %mplementat 3n ma oritatea S.,#4urilor! dar nu numai. %n "&(C+) este implementat nucleul S5+ cu anumite particularitati. 1. Ti#uri de date: TI( 0AR&1AR23/ize4 N)MBER3#5/4 *'N% DATE RA63/ize4 *'N% RA6 R'6ID &1AR3/ize4 B*'B B$I*E 2. '#eratori S+* '#erator 75 85 95 895 795 N'T BET6EEN ... AND ... IN3 i/t:4 *I;E IS N)** &aracteri/tici "peratori de comparatie 3ntre douA valori 6inclusiv7. egal cu oricare valoare din listA similar cu un Bablon C 4 oricDte caractereE _ 4 un caracterE are valoarea */++ &aracteri/tici sir de caractere de lungime variabila *umeric: p 6precision7 8 2..9:! s 6scale7 84:;..2<= sir de caractere de lung><., data calendaristica date de tip binar. 'axim size este <??? b@tes. lungime variabila > <., se stocheaza grafice! sunete! documente adresa fiecarui rind din tabela sir de caractere de lungime fixa binar@ large ob ect 6max ;.,7 se stocheaza date nestructurate 6text!imagine! video! date spatiale7 contine un pointer catre un fisier binar stocat in afara bazei de date

<. &o"enzi S+* Comenzile referitoare la bazele de date sunt comune tuturor versiunilor de S5+ si sunt impartite in urmatoarele categorii: 14 &o"enzi *DD 3*i"ba= de De>inire a Date or - Data De>inition *an.ua.e4 &o"anda &REATE A*TER DR'( Sco# Creaza un obiect nou 6tabela! utilizator! rol! etc7 'odifica o parte dintre proprietatile unui obiect )limina un obiect din baza de date

<

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ 24 &o"enzi *MD 3*i"ba= de Mani#u are a Date or - Data Mani#u ation *an.ua.e4 &o"anda Sco# SE*E&T &egaseste inregistrari in tabele sau vederi. DE*ETE Sterge inregistrari din tabele INSERT (dauga o noua inregistrare in tabela )(DATE 'odifica valorile unor inregistrari din tabele <4 &o"enzi *(T 3*i"ba= #entru (roce/area Tranzactii or4 &o"anda Sco# &'MMIT $inalizeaza o tranzactie R'**BA&; (nuleaza o tranzactie SA0E('INT #efineste un punct de salvare! in locul in care tranzactia salveaza toate operatiile effectuate pana in momentul respective! inainte de a continua urmatorul set de modificari effectuate in baza de date. ?4 &o"enzi *&D 3*i"ba= de &ontro a Date or - Data &ontro *an.ua.e4 &o"anda %RANT RE0';E Sco# (corda utilizatorilor drepturile necesare pentru accesul si manipularea obiectelor din baza de date (nuleaza anumite drepturi utilizatorilor

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________

(ARTEA I. &o"enzi *DD


&o"anda &REATE A*TER DR'( Sco# Creaza un obiect nou: T(,+)! %*#)F! C+/ST)&! T(,+)S0(C)! S)5/)*C)! 1%)G! '(T)&%(+%-)# 1%)G! /S)&! &"+)! 0&"C)#/&)! $/*CT%"*! T&%..)& 'odifica o parte dintre proprietatile unui obiect Sterge un obiect din baza de date

&REAREA SI %ESTI)NEA TABE*E*'R 1.1. CREAREA TABELELOR COMANDA CREATE TABLE


0entru a crea o tabela se specifica urmatoarele: 4 definitiile atributelor 4 modul de organizare a tabelei 4 restrictiile de integritate 4 spatiul de tabela 4 caracteristicile de stocare 4 clusterul 4 datele daca se preiau dintr4o alta tabela 4 definitiile partitiilor RESTRICTII DE INTEGRITATE 4 Tipuri de restrictii: o *"T */++ o /*%5/) o 0&%'(&H I)H o $"&)%.* o CJ)CI 4 0recizarea restrictiilor se poate face in < moduri: in-line la definirea coloanei pe care se impune restrictia si out-of-line separat! fie la sfarsitul sintaxei create table! fie prin comanda alter E!e"# u crearea tabe e or #entru a# icatia uti izata a /e"inar. De/carcati de #e /ite /cri#tu &R@TABE*E A Scri#tu /e e!ecuta cu a=utoru co"enzii: @ C:\ [cale director] \ nu e!"i#ier . e$ten#ie #&"0 T(,+) $%&') C(SC(#) C"*ST&(%*TSE #&"0 T(,+) (.)*T% C(SC(#) C"*ST&(%*TSE #&"0 T(,+) C"')*-% C(SC(#) C"*ST&(%*TSE #&"0 T(,+) &%*#C"' C(SC(#) C"*ST&(%*TSE #&"0 T(,+) 0&"#/S) C(SC(#) C"*ST&(%*TSE

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ create table firme 6codfirma number6<7 constraint 0Ie@_firme primar@ Ke@! denfirma varchar<6<?7 not null! loc varchar<6<?7! contbanca varchar62L7! zona varchar<62L7 C"*ST&(%*T $-"*(_CI checK 6zona in 6M'"+#"1(M!M(&#)(+M!M,(*(TM!M'/*T)*%(M!M#",&".)(M!MT&(*S%+1(*%(M777E create table agenti 6codagent varchar<697 constraint pK_agent primar@ Ke@! numeagent varchar<6<L7 not null! dataang date default s@sdate! datanast date! zona varchar<62L7 C"*ST&(%*T (.-"*(_CI checK 6zona in6M'"+#"1(M!M(&#)(+M!M,(*(TM!M'/*T)*%(M!M#",&".)(M! MT&(*S%+1(*%(M77! functia varchar<6<?7! codsef varchar<6977E create table comenzi 6nrcom number6;7 constraint pK_comenzi primar@ Ke@! codfirma number6<7 not null! codagent varchar<697 not null! data date default s@sdate! C"*ST&(%*T $I(gent $"&)%.* I)H 6codagent7 &)$)&)*C)S agenti6codagent7! C"*ST&(%*T $I$irme $"&)%.* I)H 6codfirma7 &)$)&)*C)S firme6codfirma77E create table produse 6codprodus number697 constraint pK_produse primar@ Ke@! denprodus varchar<6<?7 not null! um varchar<697! stoc number6;77E create table rindcom 6nrcom number6;7! codprodus number697 not null! cant number62?7! pret number6:7! termenliv date! C"*ST&(%*T $IComenzi $"&)%.* I)H 6nrcom7 &)$)&)*C)S comenzi6nrcom7! C"*ST&(%*T $I0roduse $"&)%.* I)H 6codprodus7 &)$)&)*C)S produse6codprodus77E CREAREA UNEI TABELE PE BAZA CAMPURILOR DIN ALTA TABELA: CREATE TABLE nume_ta ela AS SELECT !"# nume $am%u&i' (ROM nume_ta ela_)u&)a *+ERE !$on,itie'-

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ E!e"# u: Tabela firme_buc va contine firmele din ,ucuresti C&)(T) T(,+) $%&')_,/C (S S)+)CT N $&"' $%&') GJ)&) +"C8M,/C/&)ST%ME COMANDA DE%CR&BE SAU DE%C . PERMITE /IZUALIZAREA STRUCTURII UNEI TABELE E!e"# u: Sa se vizualizeze structura tabelei (.)*T%E #)SC (.)*T%E

1.'. MOD&(&CAREA %TR)CT)R&& TABELELOR * COMANDA ALTER


&ealizeaza urmatoarele: 4 'odificarea structurii tabelei: (##! '"#%$H! #&"0 C"+/'*! S)T /*/S)# 4 'odificarea restrictiilor de integritate: (##! '"#%$H! #&"0! #%S(,+) C"*ST&(%*T 4 &edenumeste tabela: &)*(')

E!e"# e - du#a >iecare co"anda vizua izati /tructura tabe ei cu DES&RIBE /au DES&: (+T)& T(,+) agenti &)*(') T" personalE Sau &)*(') (.)*T% T" 0)&S"*(+E (+T)& T(,+) 0)&S"*(+ (## 6)'(%+ 1(&CJ(&<62?7! 1(&ST( */',)&6<77E (+T)& T(,+) 0)&S"*(+ '"#%$H 6)'(%+ 1(&CJ(&<69?77E (+T)& T(,+) 0)&S"*(+ #&"0 C"+/'* )'(%+E (+T)& T(,+) 0)&S"*(+ S)T /*/S)# C"+/'* $/*CT%(E (+T)& T(,+) 0)&S"*(+ #&"0 /*/S)# C"+/'*SE (+T)& T(,+) 0)&S"*(+ (## 6C"*ST&(%*T checK_varsta CJ)CI 6varsta>2: and varstaOP?77E
P

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ (+T)& T(,+) 0)&S"*(+ #%S(,+) C"*ST&(%*T checK_varstaE (+T)& T(,+) 0)&S"*(+ #&"0 C"*ST&(%*T checK_varstaE

1.+. %TER,EREA TABELELOR COMANDA DRO#&"0 permite stergera unei tabele. #&"0 T(,+) 0)&S"*(+E S(/ #&"0 T(,+) 0)&S"*(+ C(SC(#) C"*ST&(%*TSE

0IZ)A*IZAREA 'BIE&TE*'R &E A(ARTIN )N)I AN)MIT )TI*IZAT'R: S)+)CT N $&"' /S)&_T(,+)SE S)+)CT T(,+)_*(')! cluster_name $&"' /S)&_T(,+)SE S)+)CT N $&"' /S)&_C(T(+".E S)+)CT #%ST%*CT ",Q)CT_TH0) $&"' /S)&_",Q)CTSE S)+)CT T(,+)_*(')! C"*ST&(%*T_TH0)! C"*ST&(%*T_*(') $&"' /S)&_C"*ST&(%*TSE S)+)CT T(,+)_*(') ! C"'')*TS $&"' /S)&_T(,_C"'')*TSE

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ EBER&ICII &'MENZI *DD

1. CREAREA TABELELOR COMANDA CREATE TABLE


&REATE TAB*E nu e!ta.el/ 3 .... de"inirea c0 1urilor 2i a ti1urilor de date a"erente 3 de"inirea re#tric4iilor de inte5ritate 4D #efinirea restricRiilor se poate realiza la nivel de cDmp 6 in-line7 sau la nivelul tabelei 6outof-line7: Sintaxa generalA: &on/traint nu e!re#tric4ie ti#@re/tricie ! 6c0 1urile c/rora li #e a1lic/ re#tric4ia7' Tipuri de restricRii: 2. &estricRia de tip (RIMARE ;EE: Constraint nume_&e)t&i$0ie 0&%'(&H I)H ! 1$2m%u&i $a&e fo&mea34 $5eia %&ima&46' <. &estricRia de tip $'REI%N ;EE: Constraint nume_&e)t&i$0ie $"&)%.* I)H 1$2m%ul $5eie e7te&n46 &)$)&)*C)S Ta el4_%4&inte 1$2m% $5eie %&ima&46 9. &estricRia de tip N'T N)**: Se defineBte nu"ai la nivelul cDmpului cAruia i se aplicA restricRia: )x: nume /ARC+AR81896 NOT NULL ;. &estricRia de tip )NI+)E: Constraint nume_&e)t&i$0ie /*%5/) ! 1$2m% $5eie uni$46' L. &estricRia de tip &1E&;: Constraint nume_&e)t&i$0ie CJ)CI ! 1$on,i0ie a)u%&a unui $2m%6'

'. MOD&(&CAREA %TR)CT)R&& TABELELOR * COMANDA ALTER


&ealizeaza urmatoarele: 4 'odificarea structurii tabelei: (##! '"#%$H! #&"0 C"+/'*! S)T /*/S)# 4 'odificarea restrictiilor de integritate: (##! '"#%$H! #&"0! #%S(,+) C"*ST&(%*T 4 &edenumeste tabela: &)*(') A*TER TAB*E nu e!ta.el/ 4 ADD 6de"inire c0 1uri78

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ 4 4 4 4 4 4 4 M'DI$E 6rede"inire c0 1uri e$i#tente78 DR'( &'*)MN c0 18 ADD &'NSTRAINT nu e!re#tric4ie TI(@RESTRI&CIE F.D DR'( &'NSTRAINT nu e!re#tric4ie8 DISAB*E &'NSTRAINT nu e!re#tric4ie8 ENAB*E &'NSTRAINT nu e!re#tric4ie8 RENAME T' nu e!nou!ta.el/8

+. %TER,EREA TABELELOR COMANDA DRODR'( TAB*E nu e!ta.el/ &AS&ADE &'NSTRAINTSD

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________

(ARTEA II - A&T)A*IZAREA TABE*E*'R (RIN &'MENZI *MD


&o"anda INSERT SE*E&T DE*ETE )(DATE Sco# (dauga o noua inregistrare in tabela &egaseste inregistrari in tabele sau vederi. Sterge inregistrari din tabele 'odifica valorile unor inregistrari din tabele

Du%a a$tuali3a&ea ,atelo& )e :a utili3a $oman,a )ele$t " f&om !nume_ta ela_a$tuali3ata'%ent&u a :i3uali3a &e3ultatel;

'.1. ADA),AREA DATELOR COMANDA &N%ERT


#atele se pot adauga in tabele in mai multe moduri: 4 precizand explicit in sintaxa comenzii valorile 4 cu a utorul variabilelor de substitutie 4 pe baza valorilor din alte tabele 0recizarea explicita a valorilor introduse se realizeaza cu comanda: %*S)&T %*T" T(,)+( 1(+/)S 6T+%ST( #) 1(+"&% 0)*T&/ $%)C(&) (T&%,/TU7E E!e"# u - vezi /cri#tu #entru adau.area inre.i/trari or in tabe e e uti izate ca e!e"# u. De/carcati de #e /ite /cri#tu INS@TABE*E.S+*A in)e&t into fi&me :alue)1<=9<#<SC AL(A SRL<#<Clu><#< $&=999<#<TRANSIL/ANIA<6in)e&t into fi&me :alue)1<89<#<SC MEDIA SA<#<Bu$u&e)ti<#< &,====<#<MUNTENIA<6in)e&t into fi&me :alue)1<?9<#<SC SO(T@ SRL<#<Ploie)ti<#< $&8888<#<MUNTENIA<6in)e&t into fi&me :alue)1<A9<#<SC MEGA SRL<#<Ia)i<#< &,????<#<MOLDO/A<6in)e&t into fi&me :alue)1<B9<#<SC STAR SA<#<Timi)oa&a<#< $&AAAA<#<BANAT<6in)e&t into fi&me :alue)1<C9<#<SC Sa) SA<#<Timi)oa&a<#< $&???<#<BANAT<6in)e&t into aDenti :alue)1<=<#<Toma Alina<#to_,ate1<fe ?#9A<#<mon ,,#EE<6#to_,ate1<>an 8?#AA<#<mon ,,#EE<6#<BANAT<#<ECONOMIST<#<8<6in)e&t into aDenti :alue)1<8<#<Rota&u Ma&ia<#to_,ate1<a%& =8#9?<#<mon ,,#EE<6#to_,ate1<fe =?#BA<#<mon ,,#EE<6#<MOLDO/A<#<DIRECTOR<#<8<6in)e&t into aDenti :alue)1<?<#<Po%e)$u Ionel<#to_,ate1<maE ?9#9A<#<mon ,,#EE<6#to_,ate1<Se% ?#CB<#<mon ,,#EE<6#<MUNTENIA<#<CONTABIL<#<=<6in)e&t into %&o,u)e :alue)1<===<#<na%olitane<#< u$<#<=999<6in)e&t into %&o,u)e :alue)1<888<#<$io$olata<#< u$<#<A999<62?

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ in)e&t into %&o,u)e :alue) 1<???<#< i)$uiti<#<%a$<#<?999<6in)e&t into %&o,u)e :alue)1<AAA<#<)e&:etele<#<%a$<#<==99<6in)e&t into $omen3i :alue)1<=99<#<=9<#<8<#to_,ate1<o$t =8#9A<#<mon ,,#EE<66in)e&t into $omen3i :alue)1<899<#<89<#<?<#to_,ate1<o$t C#9A<#<mon ,,#EE<66in)e&t into $omen3i :alue)1<?99<#<A9<#<=<#to_,ate1<no: ?9#9A<#<mon ,,#EE<66in)e&t into $omen3i :alue)1<A99<#<?9<#<8<#to_,ate1<,e$ =8#9A<#<mon ,,#EE<66in)e&t into $omen3i :alue)1<B99<#<B9<#<=<#to_,ate1<>an =B#9B<#<mon ,,#EE<66in)e&t into &in,$om :alue)1<=99<#<===<#<=B9<#<B999<#to_,ate1<o$t ?=#9A<#<mon ,,#EE<66in)e&t into &in,$om :alue)1<899<#<888<#<?99<#<89999<#to_,ate1<no: ?9#9A<#<mon ,,#EE<66in)e&t into &in,$om :alue)1<?99<#<AAA<#<=999<#<=B99<#to_,ate1<,e$ 8B#9A<#<mon ,,#EE<66in)e&t into &in,$om :alue)1<?99<#<===<#<899<#<B999<#to_,ate1<>an ?=#9B<#<mon ,,#EE<66in)e&t into &in,$om :alue)1<A99<#<???<#<=B99<#<B999<#to_,ate1<>an ?=#9B<#<mon ,,#EE<66in)e&t into &in,$om :alue)1<B99<#<===<#<=99<#<B999<#to_,ate1<fe 89#9B<#<mon ,,#EE<66Atentie9 -t dataan5 #i datana#t #e :a utili;a "unctia de con:er#ie to!date. E$: to!date6<=an '>?>@<?< on dd?AA<7 b7 adaugarea datelor pe baza valorilor din alte tabele: %*S)&T %*T" T(,)+( S)+)CT T+%ST( #) C('0/&%U $&"' T(,)+(_S/&S( GJ)&) TC"*#%T%)UE E!e"# e: Sa se creeze tabela ST"C_'%* cu aceeasi structura cu a tabelei 0&"#/S) care sa contina informatii depre produsele cu stocul mai mic decat 2??? unitati. Create table stoc_min as select N from produse Vhere <89E %nsert into stoc_min select N from produse Vhere stocO82???E

22

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________

'.'. MOD&(&CAREA DATELOR COMANDA )-DATE


Sinta!a e/te: )(DATE GTABE*AH SET G&'*'ANAH 9 G0A*'AREH 61ERE G&'NDITIEHD E!e"# e: Sa se scada cu 2?? de pachete stocul de servetele: /0#(T) 0&"#/S) S)T ST"C8ST"C42?? GJ)&) loVer6denprodus78MserveteleME S)+)CT N $&"' 0&"#/S)E Sa se modifice pretul si stocul produsului 999 cu pretul si stocul produsului cu codul 222: /0#(T) 0&"#/S) S)T 60&)T!ST"C786S)+)CT 0&)T! ST"C $&"' 0&"#/S) GJ)&) C"#0&"#/S8M222M7 GJ)&) C"#0&"#/S8W999WE Sa se modifice pretul si stocul produselor cu pretul si stocul produsului cu codul 222! dar numai pentru produsele aflate in comanda cu nr ;??: /0#(T) 0&"#/S) S)T 60&)T!ST"C786S)+)CT 0&)T! ST"C $&"' 0&"#/S) GJ)&) C"#0&"#/S8M222M7 GJ)&) C"#0&"#/S %* 6S)+)CT C"#0&"#/S $&"' &%*#C"' GJ)&) *&C"'8;??7E

'.+. %TER,EREA DATELOR COMANDA DELETE


Sinta!a e/te: DE*ETE $R'M GTABE*AH 61ERE G&'NDITIEHD E!e"# e: Sa se stearga produsele comandate pt care cantO<??E #)+)T) $&"' rindcom GJ)&) cantO<??E Sa se stearga produsele comandate pt care termen livrare>feb <??L: #)+)T) $&"' rindcom

2<

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ GJ)&) termenliv>T"_#(T)6M?24?<4?LM!M##4''4HHM7E Sa se stearga toate inregistrarile din tabela stoc_min: #)+)T) $&"' stoc_minE

'.B. %ELECT&A DATELOR COMANDA %ELECT


SE*E&T rea izeza /e ectia /i re.a/irea date or din tabe e SE*E&T GDISTIN&TH I , 5 tabe :1.cJ"#1 Ga ia/H 5 e!#re/ii AS A*IAS ...K $R'M tabe :15 tabe :25.... 61ERE Icondiii5 #recizarea e.:turi or dintre tabe eK %R')( BE tabe : .cJ"# 1A0IN% Icondiii i"#u/e va ori or de .ru#K 'RDER BE tabe : .cJ"# AS&LDES&D unde: S)+)CT #%ST%*CT N atribut expresie alias $&"' tabele GJ)&) .&"/0 ,H J(1%*. "&#)& ,H specificA atributele selectateE suprimA valorile duplicateE selecteazA toate atributeleE selecteazA coloana numitAE permite construirea de expresii si valori noi denumiri pentru atributele selectateE specificA tabelele ce conRin coloanele selectate. clauza permite specificarea conditiilor si a criteriilor de selectie a datelor se precizeaza campul dupa care vor fi grupate datele in cazul expresiilor si functiilor de grup 6S/'67! (1.67! C"/*T67! '%*67! '(F677 in cazul functiilor de grup conditiile impuse acestora se precizeaza in clauza J(1%*. precizeaza ordonarea in functie un anumite campuri ascendent 6(SC7 implicit sau descendent 6#)SC7

$razele S5+: *u sunt case sensitiveE 0ot fi scrise pe mai multe liniiE Cuvintele cheie nu pot fi prescurtate sau scrise pe mai multe linii. %n construirea frazelor S5+ se utilizeaza urmatorii operatori: O! >! 8! >8! O8! *"T ,)TG))* ... (*# ... "peratori de comparatie 3ntre douA valori 6inclusiv7.

S)+)CT codprodus! cant $&"' rindcom GJ)&) cant ,)TG))* 2? (*# 2LE

29

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ %*6listA7 egal cu oricare valoare din listA S)+)CT codagent! numeagent $&"' agenti GJ)&) codagent %* 6X2W! X9W7E S)+)CT codprod! cant $&"' rindcom GJ)&) cant %* 6;??!L??!2???7E +%I) similar cu un Bablon C 4 oricDte caractereE _ 4 un caracterE S)+)CT denfirma! loc $&"' firme GJ)&) loc +%I) W,CWE S)+)CT denfirma! loc $&"' firme GJ)&) loc +%I) W_%CWE %S */++ are valoarea */++ S)+)CT denfirma! loc $&"' firme GJ)&) loc %S */++E
-

(tributele se specificA 3n ordinea 3n care se doresc a fi afiBate! nu obligatoriu 3n ordinea 3n care apar 3n descrierea tabelelor. (fiBarea se face implicit cu litere mari! la stDnga pentru datele de tip datA calendaristicA Bi caracter! Bi la dreapta pentru datele numerice. 1aloarea */++! ca Bi 3n alte limba e! semnificA valoare ne4disponibilA! ne4alocatA! Bi nu este acelaBi lucru cu YblanK sau Yzero. Cu a utorul frazelor select se pot extrage informaRii din baza de date. /tilizDnd aceastA instrucRiune se pot realiza toate cele trei operaRii specifice modelului relaRional. "perator unar! prin care se obRine o nouA relaRie care conRine toate atributele relaRiei iniRiale Bi un numAr redus de tupluri. &educerea se face dupA o condiRie numitA condiRie de selecRie.

Se ecia:

(roiecia:

"perator unar! prin care se obRine o nouA relaRie care conRine un numAr redus de atribute faRA de relaRia iniRialA Bi toate valorile sau combinaRiile distincte de valori ale acestor atribute. (tributele care se regAsesc 3n relaRia rezultatA se numesc atribute de proiecRie.

2;

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ Monciunea: "perator binar! caz particular de produs cartezian. &elaRia rezultat va conRine tuplurile corespunzAtore atributelor de oin care se aflA 3ntr4o anumitA relaRie. Cel mai utilizat caz de oncRiune este acela 3n care atributele de oin au aceeaBi semnificaRie! relaRia 3n care acestea trebuie sA se afle este de egalitate! unul dintre atribute e cheie primarA 3ntr4una dintre relaRii! iar celAlalt este cheie externA.

EBEM(*E: 2. Sa se selecteze toti agentii din tabela agenti: S)+)CT N $&"' agentiE <. Sa se selecteze campurile codagent! numeagent si zona din tabela agenti: S)+)CT codagent! numeagent! zona $&"' agentiE 9. Sa se selecteze numai firmele din ,ucuresti: S)+)CT N $&"' firme GJ)&) upper6loc7 +%I) WC,/C/&)ST%CWE ;. Sa se selecteze comenzile incheiate de agentul cu codul 8 2: S)+)CT N $&"' comenzi GJ)&) codagent 8 W2WE Rea izarea Moin-uri or 3=onciuni or4 Nntre re aii. Ti#uri de =oin-uri a. Moin de e.a itate 3de ecOiva en: - ePui=oin4 L. Sa se selecteze comenzile emise de agentii societatii 6in clauza GJ)&) se va preciza conditia de legatura dintre tabele7 S)+)CT agenti.N! comenzi.N $&"' agenti! comenzi GJ)&) agenti.codagent8 comenzi.codagentE P. Sa se selecteze comenzile incheiate de agentul XToma (linaW numai in luna octombrie: S)+)CT agenti.N! comenzi.N

2L

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ $&"' agenti! comenzi GJ)&) agenti.codagent 8 comenzi.codagent (*# loVer6comenzi.data7 liKe XCoctCW (*# upper6agenti.numeagent7 8 WT"'( (+%*(WE =. Sa se calculeze valoarea fiecarui produs 6val_prod 8cantN pret7 si sa se afiseze pretul! cantitatea! valoarea si stocul disponibil: S)+)CT produse.denprodus! rindcom.cant! rindcom.pret! rindcom.cant N rindcom.pret (S 1al_0rod! produse.stoc $&"' produse! rindcom GJ)&) produse.codprodus8 rindcom. codprodusE :. Sa se selecteze numai produsele cu valoarea cuprinsa intre 2 si 9 mil: S)+)CT produse.denprodus! rindcom.cant! rindcom.pret! rindcom.cant N rindcom.pret (S 1al_0rod! produse.stoc $&"' produse! rindcom GJ)&) produse.codprodus8 rindcom. codprodus and rindcom.cant N rindcom.pret ,)TG))* L????? (*# <??????E b. Moin e!tern S. SA se afiBeze codul produsului! denumirea produsului Bi cantitatea comandata corespunzatoare: S)+)CT p.codprodus! p.denprodus! rc.cant! rc.pret $&"' produse p! rindcom rc GJ)&) p.codprodus 8 rc.codprodus 6Z7E c. Moin tabe : cu aceeaQi tabe : 2?. SA se afiBeze numele fiecarui agent Bi numele sefului direct superior: S)+)CT agent.numeagent[[M lucreaza pentru: M[[sefi. numeagent $&"' agenti agent! agenti sefi GJ)&) agent.codsef8sefi.codagentE Rea izarea Subcereri or 6se utilizeaza < fraze S)+)CT imbricate7 22. Sa se selecteze firmele care sunt in aceaasi zona cu firma SC ')#%( S(: S)+)CT N $&"' firme GJ)&) zona 8 6S)+)CT zona $&"' firme GJ)&) denfirma8 WSC ')#%( S(W7E 2<. SA se afiBeze produsele care au preRul unitar cel mai mic: S)+)CT p.denprodus! rc.pret $&"' produse p! rindcom rc
2P

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ GJ)&) p.codprodus 8 rc.codprodus (nd rc.pret86select min6rindcom.pret7 from rindcom7E

1. CREAREA TABELELOR COMANDA CREATE TABLE


&REATE TAB*E nu e!ta.el/ 3 .... de"inirea c0 1urilor 2i a ti1urilor de date a"erente 3 de"inirea re#tric4iilor de inte5ritate 4D #efinirea restricRiilor se poate realiza la nivel de cDmp 6 in-line7 sau la nivelul tabelei 6outof-line7: Sintaxa generalA: &on/traint nu e!re#tric4ie ti#@re/tricie ! 6c0 1urile c/rora li #e a1lic/ re#tric4ia7' Tipuri de restricRii: P. &estricRia de tip (RIMARE ;EE: Constraint nume_&e)t&i$0ie 0&%'(&H I)H ! 1$2m%u&i $a&e fo&mea34 $5eia %&ima&46' =. &estricRia de tip $'REI%N ;EE: Constraint nume_&e)t&i$0ie $"&)%.* I)H 1$2m%ul $5eie e7te&n46 &)$)&)*C)S Ta el4_%4&inte 1$2m% $5eie %&ima&46 :. &estricRia de tip N'T N)**: Se defineBte nu"ai la nivelul cDmpului cAruia i se aplicA restricRia: )x: nume /ARC+AR81896 NOT NULL S. &estricRia de tip )NI+)E: Constraint nume_&e)t&i$0ie /*%5/) ! 1$2m% $5eie uni$46' 2?. &estricRia de tip &1E&;: Constraint nume_&e)t&i$0ie CJ)CI ! 1$on,i0ie a)u%&a unui $2m%6'

'. MOD&(&CAREA %TR)CT)R&& TABELELOR * COMANDA ALTER


&ealizeaza urmatoarele: 4 'odificarea structurii tabelei: (##! '"#%$H! #&"0 C"+/'*! S)T /*/S)# 4 'odificarea restrictiilor de integritate: (##! '"#%$H! #&"0! #%S(,+) C"*ST&(%*T 4 &edenumeste tabela: &)*(')

2=

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ A*TER TAB*E nu e!ta.el/ 4 ADD 6de"inire c0 1uri78 4 4 4 4 4 4 4 M'DI$E 6rede"inire c0 1uri e$i#tente78 DR'( &'*)MN c0 18 ADD &'NSTRAINT nu e!re#tric4ie TI(@RESTRI&CIE F.D DR'( &'NSTRAINT nu e!re#tric4ie8 DISAB*E &'NSTRAINT nu e!re#tric4ie8 ENAB*E &'NSTRAINT nu e!re#tric4ie8 RENAME T' nu e!nou!ta.el/8

+. %TER,EREA TABELELOR COMANDA DRODR'( TAB*E nu e!ta.el/ &AS&ADE &'NSTRAINTSD

2:

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ RE&A(IT)*ARE &'MENZI *MD

1. ADA),AREA DATELOR COMANDA &N%ERT


INSERT INT' TABE*A 0A*)ES 3G*ISTA DE 0A*'RI (ENTR) $IE&ARE ATRIB)TH4D

'. MOD&(&CAREA DATELOR COMANDA )-DATE


)(DATE GTABE*AH SET G&'*'ANAH 9 G0A*'AREH 61ERE G&'NDITIEHD

+. %TER,EREA DATELOR COMANDA DELETE


DE*ETE $R'M GTABE*AH 61ERE G&'NDITIEHD

B. %ELECT&A DATELOR COMANDA %ELECT


SE*E&T GDISTIN&TH I , 5 tabe :1.cJ"#1 Ga ia/H 5 e!#re/ii AS A*IAS ...K $R'M tabe :15 tabe :25.... 61ERE Icondiii5 #recizarea e.:turi or dintre tabe eK %R')( BE tabe : .cJ"# 1A0IN% Icondiii i"#u/e va ori or de .ru#K 'RDER BE tabe : .cJ"# AS&LDES&D unde: S)+)CT #%ST%*CT N atribut expresie alias $&"' tabele GJ)&) .&"/0 ,H J(1%*. "&#)& ,H specificA atributele selectateE suprimA valorile duplicateE selecteazA toate atributeleE selecteazA coloana numitAE permite construirea de expresii si valori noi denumiri pentru atributele selectateE specificA tabelele ce conRin coloanele selectate. clauza permite specificarea conditiilor si a criteriilor de selectie a datelor se precizeaza campul dupa care vor fi grupate datele in cazul expresiilor si functiilor de grup 6S/'67! (1.67! C"/*T67! '%*67! '(F677 in cazul functiilor de grup conditiile impuse acestora se precizeaza in clauza J(1%*. precizeaza ordonarea in functie un anumite campuri ascendent 6(SC7 implicit sau descendent 6#)SC7

2S

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ SE*E&TIA DATE*'R &'MANDA SE*E&T - continuare

$)N&TII
$uncii /in. e-roR 3/au /ca are4. " funcRie single4roV 3ntoarce un singur rDnd rezultat pentru fiecare rDnd al tabelei interogate sau vieV $uncii de .ru# 3/au a.re.ate4. " funcRie de grup 3ntoarce un singur rDnd rezultat pentru un grup de rDnduri interogate. $uncRiile de grup pot apare 3n clauza J(1%*.

$)N&CII DE %R)( A0%3GDISTIN&TSA**H n4 calculeaza media elementelor &')NT3I, S GDISTIN&TSA**H e!#rK4 intoarce numarul total al elementelor MAB3GDISTIN&TSA**H e!#r4 intoarce elementul maxim MIN3GDISTIN&TSA**H e!#r4 intoarce elementul minim S)M3GDISTIN&TSA**H n4 4 calculeaza suma elementelor Se utilizeaza urmatoarele clauze: %R')( BE grupeaza datele in functie de un anumit campE 'RDER BE ordoneaza datele in functie de un anumit campE 1A0IN% permite stabilirea unor criterii de selectie asupra functiilor de grupE 29. SA se afiBeze valoarea maximA! valoarea medie! valoarea minimA Bi valoarea totalA a produselor comandate: S)+)CT avg6rc.cant N rc.pret7! max6rc.cant N rc.pret7! min6rc.cant N rc.pret7! sum6rc.cant N rc.pret7 $&"' rindcom rcE 2;. SA se afiBeze data primei comenzi 3ncheiate Bi data celei mai vechi comenzi 3ncheiate: S)+)CT min6data7! max6data7 $&"' comenziE 2L. SA se afiBeze numArul de produse al cAror stoc><??: S)+)CT count6N7 *r_prod $&"' produse GJ)&) stoc><??E 2P. SA se afiBeze numArul total de comenzi incheiate: S)+)CT count6nrcom7 *umar_Comenzi $&"' comenziE 2=. SA se afiBeze numArul de produse vDndute: S)+)CT count6distinct6codprodus77 0roduse_1andute $&"' rindcomE

<?

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ 2:. SA se afiBeze cantitatea medie vDndutA din fiecare produs Bi sA se realizeze ordonarea 3n funcRie de aceasta 6se utilizeaza functia (1.67 si clauza .&"/0 ,H pt gruparea datelor in functie de produse! iar ordonarea se realizeaza cu a utorul functiei "&#)& ,H 7. S)+)CT codprodus! avg6cant7 'edie_0rod $&"' rindcom .&"/0 ,H codprodus "&#)& ,H avg6cant7E 2S. SA se afiBeze produsele Bi cantitatea medie vDndutA numai acele produse a cAror cantitate medie este mai mare de 2L?? 6conditia se specifica in clauza J(1%*. si nu in clauza GJ)&) deoarece este utilizata functia de grup (1. si conditia este avg6cant7>:??7 S)+)CT codprodus! avg6cant7 $&"' rindcom .&"/0 ,H codprodus J(1%*. avg6cant7>:??E <?. Sa se calculeze valoarea totala a fiecarei comenzi si sa se sorteze descrescator in functie de valoare: S)+)CT comenzi.nrcom! S/'6rindcom.cant N rindcom.pret7 Total_Comanda $&"' comenzi! rindcom GJ)&) rindcom.nrcom8comenzi.nrcom .&"/0 ,H comenzi.nrcom "&#)& ,H Total_Comanda #)SCE <2. Sa se afiseze numai comenzile care au valoarea cuprinsa intre 9 si L mil 6conditia va fi mentionata in clauza J(1%*. pt ca se utilizeaza o functie de grup 4 S/'7: S)+)CT comenzi.nrcom! S/'6rindcom.cant N rindcom.pret7 Total_Comanda $&"' comenzi! rindcom GJ)&) rindcom.nrcom8comenzi.nrcom .&"/0 ,H comenzi.nrcom J(1%*. S/'6rindcom.cant N rindcom.pret7 ,)TG))* 2?????? (*# 9?????? "&#)& ,H Total_Comanda #)SCE

$)N&TII SIN%*E-R'6 $uncii de ti# caracter


'#eratoru de concatenare 6 [[ 7 <<. SA se afiBeze denumirea produsului Bi stocul disponibil S)+)CT Mprodusul: M [[ initcap6denprodus7[[ M are stocul diponibil M [[ stoc $&"' produseE

<2

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________

$unctia *'6ER34 5 )((ER34 <9. Sa se afiseze firmele din zona XmunteniaW: S)+)CT codfirma! upper6denfirma7! upper6loc7! upper6zona7 $&"' firme GJ)&) loVer6zona78WmunteniaWE $uncia &'N&AT34 5 >uncia *EN%T134 5 >uncia S)BSTR34 <;. SA se afiBeze denumirea firmei concatenatA cu localitatea Bi lungimea atributului denumirea firmei! numai pentru localitARile al cAror nume 3ncepe cu C S)+)CT denfirma! concat6denfirma!loc7! length6denfirma7 $&"' firme GJ)&) substr6loc!2!278MCME

$uncii de ti# nu"eric


$uncia R')ND34 <L. SA se afiBeze numArul ;L!S<9 rotun it la douA zecimale S)+)CT round6;L.S<9!<7! round6;L.S<9!?7 $&"' dualE

$uncii de ti# dat: ca endari/tic:


$unci e SESDATE <P. SA se afiBeze perioada de timp corespunzAtoare 63n sAptAmDni7 3ntre data 3ncheierii comenzii Bi data curentA: S)+)CT nrcom! round66s@sdate4data7\=7 saptamani $&"' comenziE <=. (fisati data curenta 6se selecteaza data din tabela DUAL7: S)+)CT s@sdate #(T(_C/&)*T( $&"' #/(+E $uncii e M'NT1@BET6EEN34 5 ADD@M'NT1S34 5 NEBT@DAE34 5 *AST@DAE34 <:. SA se afiBeze comenzile! data 3ncheierii comenzilor! numArul de luni 3ntre data curentA Bi data 3ncheierii! urmAtoarea zi de vineri dupA data 3ncheierii! ultima zi din luna din care face parte data 3ncheierii! precum Bi data corespunzAtoare dupA < luni de la data 3ncheierii S)+)CT nrcom! data! round6'"*TJS_,)TG))*6s@sdate! data77 luni! (##_'"*TJS6data!<7!
<<

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ *)FT_#(H6data! M$&%#(HM7! +(ST_#(H6data7 $&"' comenziE <S. SA se afiBeze comenzile incheiate in luna trecuta: S)+)CT nrcom! data $&"' comenzi GJ)&) round6'"*TJS_,)TG))*6s@sdate! data7782E $uncia R')ND34 9?. SA se afiBeze comenzile incheiate in <??;. Se va rotun i data 3ncheierii la prima zi din luna corespunzAtoare dacA data 3ncheierii este 3n prima umatate a lunii sau la prima zi din luna urmAtoare: S)+)CT nrcom! data! &"/*#6data! M'"*TJM7 $&"' comenzi GJ)&) data +%I) MC?;ME

$uncii de conver/ie
$uncia T'@&1AR3d G5 >"t H4 92. SA se afiBeze comenzile Bi data 3ncheierii in format ''\HH S)+)CT nrcom! T"_CJ(&6data! M''\HHM7 data_incheierii $&"' comenziE $uncia T'@DATE3cOar G5 >"t H4 $uncia T'@N)MBER3cOar G5>"t H4 9<. SA se afiBeze comenzile Bi data 3ncheierii 3n formatul 'onth dd! HHHH S)+)CT nrcom! data $&"' comenzi GJ)&) data8T"_#(T)6 MQanuar@ 2L! <??LM! M'onth dd!HHHHM7E $uncia EBTRA&T 34 99. SA se afiBeze informaRii despre comenzile 3ncheiate 3n anul <??; S)+)CT nrcom! data $&"' comenzi GJ)&) )FT&(CT 6H)(& from data7 8 <??;E

<9

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ &REAREA )NEI TABE*E (E BAZA &AM()RI*'R DIN A*TA TABE*A: C&)(T) T(,+) nume_ta ela (S S)+)CT !"# nume $am%u&i' $&"' nume_ta ela_)u&)a !*+ERE $on,itie'E!e"# u: Tabela firme_buc va contine firmele din ,ucuresti C&)(T) T(,+) $%&')_,/C (S S)+)CT N $&"' $%&') GJ)&) +"C8M,/C/&)ST%ME ADA)%AREA DATE*'R (E BAZA 0A*'RI*'R DIN A*TE TABE*E: %*S)&T %*T" nume_ta ela S)+)CT !"# nume $am%u&i' $&"' nume_ta ela_)u&)a !*+ERE $on,itie'E!e"# e: Sa se creeze tabela ST"C_'%* cu aceeasi structura cu a tabelei 0&"#/S) care sa contina informatii depre produsele cu stocul mai mic decat 2??? unitati. Create table stoc_min as select N from produse Vhere <89E %*S)&T %*T" ST"C_'%* S)+)CT N $&"' 0&"#/S) GJ)&) ST"CO82???E select N from stoc_minE

<;

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ %ESTI)NEA A*T'R 'BIE&TE A*E BAZEI DE DATE 1. TABE*E 0IRT)A*E &REATE G'R RE(*A&EH G$'R&ESN'$'R&EH 0IE6 nu e!:ieC AS #u.cerere G6IT1 READ 'N*EH Sa se realizeze o tabela virtuala cu toate firmele din ,ucuresti: C&)(T) 1%)G firme_buc_v (S S)+)CT N $&"' firme GJ)&) upper6loc78M,/C/&)ST%ME S)+)CT N $&"' firme_buc_vE Sa se realizeze o tabela virtuala care sa contina numai produsele pentru care unitatea de masura 6um78WbucW. C&)(T) 1%)G 0&"#_,/C_1 (S S)+)CT codprodus C"#_0&"#/S! denprodus #)*/'%&)! um /*%T(T) $&"' produse GJ)&) um8MbucME S)+)CT N $&"' 0&"#_,/C_1E Sa se stearga inregistrarile din tabela virtuala 0&"#_,/C_1 pentru produsele care au stocul mai mare de 2???. #)+)T) $&"' 0&"#_,/C_1 GJ)&) ST"C>2???E Sa realizeze o tabela virtuala cu toti agentii din 'untenia. Tabela virtuala nu va putea fi actualizata: C&)(T) 1%)G agenti_zona_v (S S)+)CT N $&"' agenti GJ)&) upper6zona78M'/*T)*%(M G%TJ &)(# "*+HE S)+)CT N $&"' firme_buc_vE Sa se stearga tabela virtuala 0&"#_,/C_1: #&"0 1%)G 0&"#_,/C_1E 1izualizarea informatiilor despre tabelele virtuale:
<L

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ S)+)CT 1%)G_*(')! T)FT $&"' /S)&_1%)GSE 2. INDE&SI 4 4 4 0ermit accesul rapid la date prin sortarea logica a inregistrarilor. Sunt gestionati automat de catre serverul "racle. Se creaza automat la introducerea unei restrictii de cheie primara sau de unicitate sau manual de catre utilizator.

&REATE INDEB nu e!inde$ 'N Nu e!ta.el/ 6c0 178 DR'( INDEB nu e!inde$8 )xemple: Sa se creeze un index pe tabela agenti pe coloana numeagent: C&)(T) %*#)F (.)*T%_*/')(._%#F "* (.)*T%6*/')(.)*T7E 1izualizarea inecsilor unui anumit utilizator: Select N from user_indexesE Sa se strearga indexul creat anterior: #&"0 %*#)F (.)*T%_*/')(._%#FE <. SE&0ENTE 4 4 4 Sunt utilizate pentru asigurarea unicitatii cheilor primare sau a valorilor pentru care s4a impus o restrictie de tip /*%5/). 0ot fi utilizate pentru mai multe tabele. 0entru fiecare secventa se va preciza valoarea de inceput! pasul de incrementare si valoarea maxima generate.

&REATE SE+)EN&E nu e!#ec:en4/ STRAT 6IT1 :aloare!ini4ial/ IN&REMENT BE 1a#ul!de!incre entare MAB0A*)E :aloare! a$i / N'&E&*ED A*TER SE+)EN&E nu e!#ec:en4/ 3...8 DR'( SE+)EN&E nu e!#ec:en4/8 )xemple: Sa se creeze o secventa pentru asigurarea unicitatii cheii primare din tabela Comenzi. Create se]uence se]_nrcomanda start Vith L?? %ncrement b@ 2?
<P

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ 'axvalue 2??? noc@cleE %nsert into comenzi values 6se]_nrcomanda.nextval! M2?M! M9M! to_date6Moct 2<!?LM! Mmon dd!@@M77E Sa se afiseze valoarea curenta a secventei: Select se]_rcomanda.currval from dualE Sa se modifice pasul de incrementare pentru secventa anterioara: (lter se]uence se]_nrcomanda increment b@ 2??E Sa se strearga secventa se]_rcomanda: #rop se]uence se]_rcomandaE Sa se vizualizeze informatiile depre secventele utilizatorilor: Select N from user_se]uencesE ?. SIN'NIME 4 4 4 Sunt nume alternative utilizate pentru referirea obiectelor unei baze de date 0ot fi sinonime publice 6accesibile tuturor utilizatorilor7 sau private. Sinonimele publice pot fi create numai de administratorul bazei de date $'R nu e!ta.el/D

&REATE SEN'NEM nu e!#inoni DR'( SEN'NEM nu e!#inoni 8

)xemple: Sa se creeze un sinonim pentru tabela rindcom: Create s@non@m detalii_comanda for rindcomE Sa se strearga sinonimul creat anterior: #rop s@non@m detalii_comandaE 1izualizarea sinonimelor se realizeaza astfel Select N from user s@non@msE

<=

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ EBER&ICII RE&A(IT)*ATI0E

2. SA se creeze tabelele (acult/4i! Catedre Bi -er#oane pe baza schemei de mai sus! RinDnd cont de urmAtoarele: $A&)*TTCI *ume coloanA Tipul restricRiei Tip datA +ungime &ATEDRE *ume coloanA Tipul restricRiei Tip datA +ungime (ERS'ANE *ume coloanA Tipul restricRiei COD0rimar@ Ke@ N)ME ()NCD&A ChecK DATAAN, CODCAT $oreign Ke@ 4 referA tabela Catedre! coloana CODCAT #ate 1archar< = CODCAT 0rimar@ Ke@ 1archar< = DENCAT *ot null 1archar< ;? COD(AC $oreign Ke@ 4 referA tabela (acult/4i! coloana COD(AC 1archar< L COD(AC 0rimar@ Ke@ 1archar< L DEN(AC *ot null 1archar< 2??

Tip datA +ungime

*umber 9

1archar< 9?

1archar< L

(tributul ()NCD&A poate lua valorile: (ro> 6profesor7! &on> 6conferenRiar7! *ect 6lector7! A/i/t 6asistent7! (re# 6preparator7

<:

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ <. SA se redenumeascA tabela -er#oane 3n An5a=ati. 9. SA se adauge 3n tabela An5a=ati coloana %alariu! avDnd tipul *umber6;7. ;. SA se adauge 3n tabela An5a=ati o restricRie de integritate avDnd numele Eeri"ica%alariu asupra cDmpului %alariu! care sA nu permitA introducerea de valori mai mici decDt 2??? si mai mari decDt L???. L. 'odificaRi proprietARile cDmpului Den(ac din tabela (acultati! astfel 3ncDt lungimea acestuia sA fie de P? P. #ezactivaRi restricRia de integritate Eeri"ica%alariu existentA 3n tabela An5a=ati. =. SA se adauge 3n tabele urmAtoarele informaRii: $A&)*TTCI COD(AC CS%) C%. C"' &ATEDRE CODCAT %) C%, )' ST(T AN%AMATI COD2 < 9 ; L P N)ME %onescu 0opescu .eorgescu Stanescu Tudor -aharia ()NCD&A 0rof 0rof (sist Conf +ect 0rep ?;4$),4<??L <94(0&4<??< 2?4"CT4<??2 DATAAN, 2<4*"142SS; CODCAT %) C%, %) )' %) )' %ALAR&) <<?? <??? 2??? 2;?? 2L?? S?? DENCAT %nformatica )conomica Cibernetica )conomica )conomie 'atematica Statistica si 0reviziune )conomica COD(AC CS%) CS%) CS%) CS%) DEN(AC Cibernetica! Statistica si %nformatica )conomica Contabilitate si %nformatica de .estiune Comert

:. ^n tabela An5a=ati modificaRi 3n 'arinescu numele anga atului cu Cod1 egal cu 9 6cDmpul Nu e7. S. ^n tabela An5a=ati modificaRi 3n +ect funcRia anga atului cu Cod1 egal cu ; 6cDmpul (unctia7.
<S

BAZE DE DATE SEMINAR IDD

___________________________________________________________________________ 2?. ^n tabela An5a=ati creBteRi cu 2?C salariile anga aRilor care au 3n prezent salariul mai mic decDt 2;?? 6cDmpul %alariu7. 22. ^n tabela An5a=ati modificaRi codul catedrei 6cDmpul CodCat7 anga atului cu Cod1 egal cu ; astfel 3ncDt sA fie acelasi cu codul catedrei unde este 3ncadrat anga atul cu Cod1 egal cu <! utilizDnd clauza %ELECT. 2<. SA se afiBeze toate informaRiile despre (acultati. 29. SA se afiBeze numele Bi funcRia tuturor anga atilor! ordonaRi descrescAtor dupA nume. 2;. SA se afiBeze anga aRii al cAror nume incepe cu litera S. 2L. SA se afiseze numele asistenRilor Bi lectorilor 6funcRiile sunt codificate prin A#i#t! respectiv Lect7. 2P. SA se creeze o tabelA virtualA avDnd numele -er#onalCatedre! care sA conRinA pentru fiecare anga at de la catedrele cu codul %) Bi C%,: numele! funcRia Bi denumirea catedrei. 2=. SA se afiBeze salariile maxim! minim Bi mediu pentru toate persoanele anga ate dupA anul <???. 2:. SA se afiBeze numArul de persoane de la catedra cu CodCat egal cu %). 2S. SA se afiBeze salariul mediu pentru fiecare catedrA. 6gruparea se va face 3n funcRie de codul catedrei7 <?. SA se afiBeze salariul mediu corespunzAtor fiecArei funcRii! numai 3n cazul 3n care acesta depABeBte 2<??. <2. SA se afiBeze informaRii despre persoanele anga ate la aceeaBi catedrA ca Bi %onescu. <<. SA se afiBeze persoanele care au salariul mai mare decDt salariul mediu. <9. SA se afiBeze denumirea catedrei Bi numArul de persoane de la fiecare catedrA! cu excepRia catedrei de %nformaticA )conomicA Bi numai pentru acele catedre care au mai mult de o persoanA. <;. SA se afiBeze pentru fiecare funcRie numArul de anga aRi. <L. _tergeRi tuplul corespunzAtor codului Cod1 egal cu <.

9?

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