___________________________________________________________________________
C"#(.)*T
#(T(
C(*T
0&)T
T)&')*+%1&
(R'D)SE C"#0&"#/S
#)*0&"#/S
/'
ST"C
___________________________________________________________________________
<. &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
<
___________________________________________________________________________ 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
___________________________________________________________________________
___________________________________________________________________________ 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'-
___________________________________________________________________________ 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
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
___________________________________________________________________________ (+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
___________________________________________________________________________ 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
___________________________________________________________________________
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;
___________________________________________________________________________ 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
___________________________________________________________________________
2<
___________________________________________________________________________ GJ)&) termenliv>T"_#(T)6M?24?<4?LM!M##4''4HHM7E Sa se stearga toate inregistrarile din tabela stoc_min: #)+)T) $&"' stoc_minE
$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
___________________________________________________________________________ %*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;
___________________________________________________________________________ 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
___________________________________________________________________________ $&"' 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
2=
___________________________________________________________________________ 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
2:
2S
$)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
<?
___________________________________________________________________________ 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
<2
___________________________________________________________________________
$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
___________________________________________________________________________ *)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
___________________________________________________________________________ &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
<;
___________________________________________________________________________ %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
___________________________________________________________________________ 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
___________________________________________________________________________ '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
)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
<=
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??
*umber 9
1archar< 9?
1archar< L
(tributul ()NCD&A poate lua valorile: (ro> 6profesor7! &on> 6conferenRiar7! *ect 6lector7! A/i/t 6asistent7! (re# 6preparator7
<:
___________________________________________________________________________ <. 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
___________________________________________________________________________ 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?