Sunteți pe pagina 1din 30

Proiect

Baze de date
Nastase Radu Gabriel
Grupa:1036 An: II,CSI
Seria: !
1

Cuprins
Schema bazei de date""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" #
Operatii DDL"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" #
$%abela partitionata&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 10
Comenzi DML"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 10
Update,Alter,Drop si Merge"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 1'
$%runc&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 16
Interograri""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 1(
$Case&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 1(
$Intersect1&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 1)
$*nion&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +0
$Group b,&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +1
$Subcerere1&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ++
$-tract&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +3
$.rder b,, !SC&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +3
$/in,/a-&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +0
$Intersect+&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +'
$1a2in3,Count, .rder b,, ASC&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +'
$Subcerere+&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +6
$/inus&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +6
$!ecode&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +6
$Inde-&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +#
$Cluster&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +#
$Concat& $4en3t5& $Substr& $.rder b,&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +(
$/ont5s Bet6een& $Ne-t da,& $4ast da,&$Round&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+(
$7ie6&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +)
$Sec2enta&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +)
$A7G, .rder b,&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 30
$IN&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 30
$Su8& $Group b,& $1a2in3&""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 31
+

Schema bazei de date , comenzi DDL si
comenzi DML
Descrierea frmei si crearea tabelelor din BD
Baza de date creata se ocupa de 3estiunea in9or8aiilor le3ate de acti2itatea unei :r8e
producatoare de ;ocuri pentru PC $S+ Ga8es&" Pentru aceasta a8 creat # tabele :
1& Pro3ra8atori :
%abela <Pro3ra8atori= contine in9or8atii despre pro3ra8atorii care lucreaza pentru
:r8a" In 8o8entul an3a;arii li se retine : nu8ele, prenu8ele , nu8arul de tele9on ,
adresa $acestea :ind ca8puri obli3atorii& si e8ail>ul , dupa aceea li se atribuie un id care
are rol de c5eie pri8ara "
Scriptul de creare al tabelei <Pro3ra8atori= :
create table Pro3ra8atori
$id?pro3ra8ator nu8ber$3& constraint p@?pro3ra8ator pri8ar, @e,,
nu8e 2arc5ar+$1'& constraint nn?nu8epro3ra8ator not null,
prenu8e 2arc5ar+$10& constraint nn?prenu8epro3ra8ator not null,
adresa 2arc5ar$30& constraint nn?adresap not null,
nr?tel 2arc5ar+$10& constraint nn?telp not null,
e8ail?pro3ra8ator 2arc5ar+$30&&A
+& 4icente pt so9t6are:

3
id?pro3ra8ato
r
nu8e
prenu8e
nr?tel
adresa
e8ail
id?licenta
nu8e?licent
a
nr?licente

%abela <4icente pt so9t6are= contine in9or8atii despre licentele care s>au dat spre
9olosinta pro3ra8atorilor pentru anu8ite pro3ra8e " Acestea se identi:ca prin id>ul
licentei$Pri8ar, @e,& nu8ele licentei , dar si cate licente de acest tip s>au dat"
Scriptul de creare al tabelei <4icente pt so9t6are=:
create table 4icente?pt?so9t6are
$id?licenta nu8ber$3& constraint p@?licenta pri8ar, @e,,
nu8e?licenta 2arc5ar+$+0& constraint nn?licenta not null,
nr?licente nu8ber$3&&A
3& 2identa licenta:
%abela <2identa licenta= contine in9or8atii le3ate de cine 9oloseste licenta si la ce data
s>a acti2at " Pri8ar, @e,>ul acestei tabele :ind id>ul licentei si id>ul pro3ra8atorului "
Scriptul de creare al tabele <2identa licenta=:
create table 2identa?licenta
$id?licenta nu8ber$3&,
id?pro3ra8ator nu8ber$3&,
data?acti2arii data,
constraint 9@?e21 9orei3n @e,$id?licenta& re9erences 4icente?pt?so9t6are$id?licenta&,
constraint 9@?e2+ 9orei3n @e,$id?pro3ra8ator& re9erences Pro3ra8atori$id?pro3ra8ator&,
constraint p@?e2identa pri8ar, @e, $id?licenta, id?pro3ra8ator&&A
0& !esi3n?Concepte:

%abela <!esi3nBConcepte= contine in9or8atii le3ate de proiectele pro3ra8atorilor ,
nu8ele proiectului dar si in care dintre cate3oriile prezente in ;oc se incadreaza proiectul
lor" Pri8ar, @e, este reprezentata de id?proiect , id?9action si id?pro3ra8ator :ind c5ei
e-terne din tabelele <Cate3orii= respecti2e <Pro3ra8atori= "
0
id?licenta
id?pro3ra8ato
r
data?acti2arii
id?proiect
id?9action
id?pro3ra8ator
nu8e

Scriptul de creare al tabelei <!esi3n?Concepte=:
create table !esi3n?Concepte
$id?proiect nu8ber$'& constraint p@?proiect pri8ar, @e, ,
id?9action nu8ber$'& ,
id?pro3ra8ator nu8ber$3& ,
nu8e 2arc5ar+$+0&,
constraint 9@?9action1 9orei3n @e, $id?9action& re9erences Cate3orii$id?9action&,
constraint 9@?proiect+ 9orei3n @e,$id?proiect& re9erences Pro3ra8atori$id?pro3ra8ator&&A
'& Cate3orii:
%abela <Cate3orii= are c5eia pri8ara id?9action , id?tester :ind c5eie e-terna din
tabela <%esteri= " Aici se 8ai pastreaza date despre data in care s>a realizat cop,ri35t>ul
si atributul principal al persona;ului creat"
Scriptul de creare al tabelei <Cate3orii=:
create table Cate3orii
$id?9action nu8ber$'& constraint p@?9action pri8ar, @e, ,
id?tester nu8ber$3& ,
atribut?principal 2arc5ar+$30& constraint nn?atribut not null,
data?cop,ri35t date,
constraint 9@?cate3orii 9orei3n @e, $id?tester& re9erences %ester$id?tester&&A
6& %esteri:


%abela <%esteri= retine in9or8atii despre cei care testeaza in>3a8e proiectele celor din
departa8entul <Pro3ra8atori= " C5eia pri8ara este id?tester , :ind retinute si nu8ele ,
prenu8ele , nu8arul de tele9on, adresa , dar si e8ail>ul"
'
id?9action
id?tester
data?cop,ri35t
atribut?principal
id?tester
nu8e
prenu8e
nr?tele9o
n
adresa
e8ail

Scriptul de creare al tabelei <%esteri=:
create table %esteri
$id?tester nu8ber$3& constraint p@?tester pri8ar, @e,,
nu8e 2arc5ar+$1'& constraint nn?nu8etester not null,
prenu8e 2arc5ar+$10& constraint nn?prenu8etester not null,
adresa 2arc5ar+$30& constraint nn?adresat not null,
nr?tel 2arc5ar+$10&constraint nn?telt not null,
e8ail?tester 2arc5ar+$30&&A
#& Salarii:
%abela <Salarii= retine in9or8atii despre salariul si co8isionul pro3ra8atorilor si a
testerilor " Id>ul salariului reprezinta c5eia pri8ara a tabelei, iar id>ul pro3ra8atorului
reprezentand 9orei3n @e,>ul tabelei"
Scriptul de creare al tabelei <Salarii=:
create table Salarii?pro3ra8atori
$id?salariu nu8ber$3& constraint id?sal?p@ pri8ar, @e,,
id?pro3ra8ator nu8ber$3&,
salariul nu8ber$#,+& constraint sal?nn N.% N*44,
co8ision nu8ber$3&,
constraint id?pro3?9@ 9orei3n @e,$id?pro3ra8ator& re9erences
pro3ra8atori$id?pro3ra8ator&&A
6
id?pro3ra8ato
r
id?salariu
salariul
co8ision

Schema bazei de date
Poza 1 Diagrama ERD
Operatii DDL
1" Sa se adau3e in %abela <Pro3ra8atori= coloana <!ata?an3a;are= , cu restrictia N.%
N*44"

alter table Pro3ra8atori
add $data?an3a;are date constraint data?an3a;are N.% N*44&A
#



+" Sa se eli8ine restrictia pentru <data?an3a;are= din tabela pro3ra8atori "

alter table Pro3ra8atori
drop constraint data?an3a;areA
3" Sa se stear3a ca8pul data?an3a;are din tabela pro3ra8atori "
alter table pro3ra8atori
drop colu8n data?an3a;areA
0" Sa se adau3e o restrictie de tip <c5ec@= pentru a 2eri:ca daca id>ul pro3ra8atorilor
este introdus intre li8itele per8ise$1>60&"
(

alter table pro3ra8atori
add $ constraint c5ec@?id c5ec@ $id?pro3ra8atorC0 and id?pro3ra8atorD60&&A
'" Sa se creeze o tabela cu nu8ele <!irectori?Proiecte= ca tabela Pro3ra8atori"
create table !irectori?Proiecte
as select E 9ro8 Pro3ra8atoriA
6" Sa se stear3a tabela <!irectori?Proiecte= "
!rop table !irectori?ProiecteA
#" Sa se creeze o tabela partitionata , care 2a partitiona salariile in 8ic$D+'00&,
8ediu$D0300& si 8are$#000& , a2and ca8purile salariul si an3a;at" An3a;at 2a : de
tip c5ar si 2a : or tester ori pro3ra8ator"
(Tabela partitionata)
)

create table salarii?p
$an3a;at c5ar$30& N.% N*44, salariul nu8ber$#,+& N.% N*44&
partition b, ran3e$salariul&
$partition 8ic 2alues less t5an $F+'00F&,
partition 8ediu 2alues less t5an $F0300F&,
partition 8are 2alues less t5an $F#000F&&
Comenzi DML
1& Popularea tabelei Pro3ra8atori:
insert into Pro3ra8atori
2alues $1,F/arcelF, FNastaseF, FStr" Calea Ple2nei nr"+F, F0#0'+3001+F,F/ARC4NF&A
insert into Pro3ra8atori
2alues $+,Fnac5escuF, FAurelianF, FStr" Gratiei nr"31'F, F0#030')+30F,FNAC1SC*AF&A
insert into Pro3ra8atori
2alues $3,FBoteaF, FAdrianF, FStr" Pri8a2erii nr"1+F, F0#'+3#1+)'F,FB.%AAF&A
insert into Pro3ra8atori
2alues $0,FAn35elF, F4u8initaF, FStr" !orobanti nr"13F, F0#++31#30(F,FANG144F&A
insert into Pro3ra8atori
2alues $',FAle-andruF, F/arcelF, FStr" GalatiF, F0#6'1)3#+0F,A4GAN!R*/F&A
insert into Pro3ra8atori
2alues $6,F!orobantuF, F/irceaF, FStr" IndustrieiF, F0#+6(3)013F,F!.R.BAN%*/F&A
10

+& Popularea tabelei <4icente pt so9t6are=:
insert into licenta?pt?so9t6are
2alues$1,FP5otos5op 2)"(F,+&A
insert into licenta?pt?so9t6are
2alues$+,F3!s/a-F,1&A
insert into licenta?pt?so9t6are
2alues$3,F%ec5!esi3n 2(,'H,1&A
insert into licenta?pt?so9t6are
2alues$0,FCodeRelie9 2+3"0F,+&A
insert into licenta?pt?so9t6are
2alues$',HIint5rusterH,6&A
insert into licenta?pt?so9t6are
2alues$6,HBit!e9ender +013H,6&A
insert into licenta?pt?so9t6are
2alues$#,HPinc5Pro3ra88in3H,0&A
3& Popularea tabelei <2identa?licenta=:
insert into e2identa?licenta
11

2alues$1,1,to?date$F10"10"+003F,Fdd"88",,,,F&&A
insert into e2identa?licenta
2alues$1,+,to?date$F0'"06"+006F,Fdd"88",,,,F&&A
insert into e2identa?licenta
2alues$+,1,to?date$F01"0'"1))#F,Fdd"88",,,,F&&A
insert into e2identa?licenta
2alues$3,3,to?date$F0#"10"+000F,Fdd"88",,,,F&&A
insert into e2identa?licenta
2alues$0,0,to?date$F13"0("+006F,Fdd"88",,,,F&&A
insert into e2identa?licenta
2alues$0,',to?date$F01"0'"1))#F,Fdd"88",,,,F&&A
insert into e2identa?licenta
2alues$6,6,to?date$F0+"03"+000F,Fdd"88",,,,F&&A
insert into e2identa?licenta
2alues$6,+,to?date$F01"0'"1))#F,Fdd"88",,,,F&&A
0& Popularea tabelei <!esi3n?Concepte=:
insert into desi3n?concepte
2alues$1,1,1,FGrine-F&A
insert into desi3n?concepte
2alues$+,3,+,FPredatorF&A
insert into desi3n?concepte
2alues$3,',6,FRall,F&A
insert into desi3n?concepte
2alues$0,0,0,FRi9t6al@erF&A
insert into desi3n?concepte
2alues$',+,',FGunbladeF&A
insert into desi3n?concepte
2alues$6,6,1,F/,r8idonF&A
1+

'& Popularea tabelei <Cate3orii=:
insert into cate3orii
2alues$1,1,Fstren35tF,to?date$F16"06"+000F,Fdd"88",,,,F&&A
insert into cate3orii
2alues$+,+,Fstren35tF,to?date$F+1"0("+00#F,Fdd"88",,,,F&&A
insert into cate3orii
2alues$3,3,Fa3ilit,F,to?date$F+#"0+"+00(F,Fdd"88",,,,F&&A
insert into cate3orii
2alues$0,6,Fa3ilit,F,to?date$F1("0("+003F,Fdd"88",,,,F&&A
insert into cate3orii
2alues$',0,Fintelli3enceF,to?date$F1'"03"+001F,Fdd"88",,,,F&&A
insert into cate3orii
2alues$6,',Fintelli3enceF,to?date$F1+"0'"+001F,Fdd"88",,,,F&&A
6& Popularea tabelei <%esteri=:
insert into testeri
2alues$1,FBidilaF,F7alentinF,FStr Ion Garbeanu nr"+3F,F0#6+30'6#1F,Fbidi?2al,F&A
insert into testeri
13

2alues$+,F/ariusF,FAle-andruF,FStr 7asile /ilea nr"0F,F0#0+3'0(#)F,F/ARI*SAF&A
insert into testeri
2alues$3,F/aracineF,FAndreiF,FStr Antonescu /arin nr"3F,F0#+'60#()'F,F/AN!RIF&A
insert into testeri
2alues$0,FA2ra8F,FAntonF,FStr A8inei nr"'F,F0#0'60+1+1F,FA2ra81F&A
insert into testeri
2alues$',FGaborF,F/i5neaF,FStr Gropari nr"0F,F0#+3+13+10F,FGabor/F&A
insert into testeri
2alues$6,FBianc5iF,F/ironF,FStr !orobani nr"0'F,F0#6)(#6'01F,F/iron?BF&A
#& Popularea tabelei <Salarii?pro3ra8atori=:
insert into salarii?pro3ra8atori
2alues$1,1,3000,0&A
insert into salarii?pro3ra8atori
2alues$+,+,'600,0&A
insert into salarii?pro3ra8atori
2alues$3,3,6000,0&A
insert into salarii?pro3ra8atori
2alues$0,0,'000,0&A
insert into salarii?pro3ra8atori
2alues$',',0300,0&A
insert into salarii?pro3ra8atori
2alues$6,6,30'6,0&A
10

Update,Alter,Drop si Merge
1& Sa se 8odi:ce prenu8ele pro3ra8atorului cu id>ul <1= in <Aurel="
*pdate Pro3ra8atori
set prenu8eJHAurelH
65ere id?pro3ra8atorJ 1A
+& Sa se 8odi:ce nu8arul de tele9on al testerului al carui nu8e incepe cu litera <G=:
*pdate %esteri
set nr?telJF0#+0301+03F
65ere nu8e li@eFGKFA
3& Sa se 8odi:ce atributul principal in <Stren35t= pentru 9action>urile 8ai 2ec5i de +
ani :
1'

(Trunc)
*pdate Cate3orii
set atribut?principal JFstren35tF
65ere trunc$$s,sdate>data?cop,ri35t&L36'&C+A
0& Pentru 9action>ul cu id>ul + 8odi:cati data?cop,ri35t ca :ind cea 8ai 2ec5e data:
update cate3orii
set data?cop,ri35tJ$ select 8in$data?cop,ri35t& 9ro8 Cate3orii &
65ere id?9actionJ+A
'& Sa se stear3a din tabela e2identa?licente ulti8a utilizare inre3istrata:
delete 9ro8 e2identa?licenta
65ere data?acti2ariiJ$select 8a-$data?acti2arii& 9ro8 e2identa?licenta&A
16

6& I" Sa se adau3e ca8pul MsalariulH in tabela pro3ra8atori$salariul nu8ber$#,+&, dupa
aceasta se initializeze 2aloarea cu M1+00H"
II" Sa se actualizeze tabela pro3ra8atori , ca8pul MsalariuH con9or8 tabelei
salarii?pro3ra8atori:
alter table pro3ra8atori
add$salariul nu8ber$#,+&&A
update pro3ra8atori
set salariulJF1+00FA
8er3e into pro3ra8atori p usin3 salarii?pro3ra8atori sp
on $p"id?pro3ra8atorJsp"id?pro3ra8ator&
65en 8atc5ed t5en
update
set p"salariulJsp"salariulA
In terograri
1& Sa se a:seze pro3ra8atorii care au 9olosit Bit!e9ender +013:
select prenu8e NNF FNNnu8e as Nu8e?pro3ra8ator
9ro8 pro3ra8atori p, e2identa?licenta e, licente?pt?so9t6are l
65ere p"id?pro3ra8atorJe"id?pro3ra8ator and e"id?licentaJl"id?licenta and
lo6er$l"nu8e?licenta& li@e Fbitde9ender +013FA
1#

+& Sa se acorde cate un cali:cati2 in 9unctie de cat ti8p a trecut de la
lansarea$!ata la care s>a inre3istrat cop,ri35t>ul& :ecarui proiect$9action&:
(Case)
select atribut?principal,trunc$$s,sdate>data?cop,ri35t&L36'& as 4ansare,
case 65en trunc$$s,sdate>data?cop,ri35t&L36'& D) t5en (
65en trunc$$s,sdate>data?cop,ri35t&L36'& bet6een ) and 10 t5en )
else 10 end cali:cati2
9ro8 cate3oriiA
3& Sa se a:seze pro3ra8atorii care si>au acti2at licenta in luna 8ai:
select nu8e, prenu8e, data?acti2arii
1(

9ro8 pro3ra8atori p, e2identa?licenta e, licente?pt?so9t6are l
65ere p"id?pro3ra8atorJe"id?pro3ra8ator and e"id?licentaJl"id?licenta and
to?c5ar$data?acti2arii,F88F&JF0'FA
0& Sa se a:seze pro3ra8atori care au lucrat la proiectul cu nu8ele <Predator=:
(Intersect1)
select nu8e, prenu8e 9ro8 pro3ra8atori
65ere id?pro3ra8ator bet6een 1 and 6
intersect
select p"nu8e, p"prenu8e 9ro8 pro3ra8atori p, desi3n?concepte d
65ere p"id?pro3ra8atorJd"id?pro3ra8ator and lo6er$d"nu8e& li@e FpredatorFA
'& Sa se a:seze in9or8atii despre in9or8atii despre 9action>ul cu idJ+ si despre
cele care au atributul principal <a3ilit,=A $Pentru a rula aceasta co8anda a8
rulat in prealabil instructiunea:
update cate3orii
set atribut?principalJFa3ilit,F
65ere data?cop,ri35tJF1'"03"+001FA &
(Union)
1)

select id?9action, id?tester, atribut?principal, data?cop,ri35t
9ro8 cate3orii
65ere id?9actionJ1
union
select id?9action, id?tester, atribut?principal, data?cop,ri35t
9ro8 cate3orii
65ere atribut?principalJFa3ilit,FA
6& Sa se a:seze la cate proiecte a participat :ecare tester:
select t"nu8e, t"prenu8e, count$c"id?tester& participari
9ro8 testeri t, cate3orii c
65ere c"id?testerJt"id?tester
3roup b, t"nu8e, t"prenu8eA
(Group by)
#& Sa se a:seze in9or8atii despre pro3ra8atorii al caror e8ail contine 3rupul de
litere <an= :
+0

select prenu8e,nu8e,e8ail?pro3ra8ator 9ro8 pro3ra8atori
65ere e8ail?pro3ra8ator li@e FKANKFA
(& Sa se 8odi:ce adresa testerului cu e8ailul <Gabor/= cu adresa testerului care
are nu8ele <A2ra8=
update testeri
set adresaJ$select adresa 9ro8 testeri 65ere nu8eJFA2ra8F&
65ere e8ail?testerJFGabor/FA
)& Sa se a:seze licentele acti2ate Ontre 1+"10"+000 si data curenta:
(Subcerere1)
select id?licenta, nu8e?licenta 9ro8 licente?pt?so9t6are
65ere id?licenta in $select id?licenta 9ro8 e2identa?licenta
65ere data?acti2ariiCto?date$F1+"10"+000F,Fdd"88",,,,F&&A
10& Sa se a:seze toate datele in care s>au inre3istrat cop,ri35t intre anii : +001>
+003 si toate in9or8atiile le3ate de acestea :
+1

$Inainte de a e-ecuta co8anda a8 rulat in prealabil ur8atoarele + scripturi
pentru a e2identia e-ercitiul 8ai bine :
update cate3orii
set data?cop,ri35tJF1+>0(>+00+F
65ere id?9actionJF+FA
update cate3orii
set data?cop,ri35tJF1+>0(>+00+F
65ere id?9actionJF6FA&

(Etract)
select id?9action, id?tester, atribut?principal, data?cop,ri35t
9ro8 cate3orii
65ere e-tract$,ear 9ro8 data?cop,ri35t& bet6een +001 and +003
order b, data?cop,ri35t ascA

++

11& Sa se a:seze nu8ele si id>ul proiectelor dar si nu8ele si prenu8ele
pro3ra8atorilor care le>au realizat:
(!r"er by# DESC)
select p"nu8e, p"prenu8e, d"id?proiect, d"nu8e
9ro8 pro3ra8atori p, desi3n?concepte d
65ere p"id?pro3ra8atorJd"id?pro3ra8ator
order b, id?proiect !SCA

1+& Sa se a:seze nu8ele si prenu8ele testerului care a testat proiectul cu nu8ele
de <Grine-=:
select t"nu8e, t"prenu8e 9ro8 testeri t,cate3orii c, desi3n?concepte d,
pro3ra8atori p
65ere t"id?testerJc"id?tester and c"id?9actionJd"id?9action and
d"id?pro3ra8atorJp"id?pro3ra8ator and lo6er$d"nu8e& li@e F3rine-FA
13& Sa se a:seze pri8a data si ulti8a data la care s>au acti2at licente pt so9t6are:
($in#$a)
select 8in$data?acti2arii&, 8a-$data?acti2arii&
9ro8 e2identa?licentaA
+3

10& Sa se a:seze pro3ra8atorul cu id>ul intre 1 si 6 care a conceput proiectul cu
nu8ele de <Rall,=:
(Intersect%)
select nu8e,prenu8e 9ro8 pro3ra8atori p
65ere id?pro3ra8ator bet6een 1 and 6
intersect
select p"nu8e, p"prenu8e 9ro8 pro3ra8atori p, desi3n?concepte d
65ere p"id?pro3ra8atorJd"id?pro3ra8ator and lo6er$d"nu8e& li@e Frall,FA
1'& Sa se aPe carui pro3ra8ator i s>au acordat 8ai 8ult de o lincenta:
$Pentru a e2identia 8ai bine e-ercitiul a8 rulat in prealabil co8anda:
update e2identa?licenta
set id?pro3ra8atorJF1F
65ere id?licentaJF0FA&
(&a'ing#Count# !r"er by# (SC)
select p"nu8e, p"prenu8e, count$e"id?licenta& licente
9ro8 pro3ra8atori p, e2identa?licenta e
65ere p"id?pro3ra8atorJe"id?pro3ra8ator
3roup b, p"nu8e, p"prenu8e
5a2in3 count$e"id?licenta&C1
order b, licente ASCA
+0

16& Sa se a:seze id?pro3ra8atorului si nu8ele licentei pentru so9t6are>ul care
are cele 8ai 8ulte licente:
(Subcerere%)
select e"id?pro3ra8ator, l"nu8e?licenta
9ro8 e2identa?licenta e, licente?pt?so9t6are l
65ere l"id?licenta J e"id?licenta and l"nr?licenteJ$select 8a-$nr?licente& 9ro8
licente?pt?so9t6are&A
1#& Sa se a:seze toate datele despre pro3ra8atorii care au salariul intre $3000 si
'000& din tabela salarii?pro3ra8atori , 8ai putin cei care au co8isionul 0K:
($inus)
select E 9ro8 salarii?pro3ra8atori
65ere salariul bet6een 3000 and '000
8inus
select E 9ro8 salarii?pro3ra8atori
65ere co8isionJF0FA
1(& Sa se a:seze pe ecran pentru care so9t6are>uri 8ai trebuie cu8parate
licente :
> !aca este cu8parata o sin3ura licenta: sa se ac5izitioneze inca 3"
+'

> !aca sunt cu8parate + licente : sa se ac5izitioneze inca +"
> !aca sunt cu8parate 0 licente : sa se ac5izitioneze inca 1"
(Deco"e)
select id?licenta, nu8e?licenta,
!C.!$nr?licente, 1, F3F, +, F+F, 0, F1F, 0& licente?de?cu8parat
9ro8 licente?pt?so9t6areA
1)& Sa se creeze un cluster pentru ca8pul id?9action si sa se adau3e la acest
cluster + tabele Cate3orii+ si !esi3n?concepte+ cu aceasi structura ca :
Cate3orii , respecti2e !esi3n?concepte:
(In"e)
(Cluster)
create cluster Qaction$id?9action nu8ber$'&&A
create inde- id-?9action on cluster Qaction
create table desi3n?concepte+
cluster Qaction$id?9action&
as select E 9ro8 desi3n?concepteA
create table Cate3orii+
cluster Qaction$id?9action&
as select E 9ro8 cate3oriiA
+0& Sa se a:seze nu8ele licentei concatenate cu prenu8ele pro3ra8atorilor si
lun3i8ea nu8elui licentei pentru licentele care au a>+>a litera <i= si pentru
+6

pro3ra8atori in al caror prenu8e a>+>a litera este <u=" Sa se ordoneze dupa
nu8ele licentei :
(Concat) ()engt*) (Substr) (!r"er by)
select nu8e?licenta , concat$nu8e?licenta,prenu8e&, len3t5$nu8e?licenta&
9ro8 licente?pt?so9t6are, pro3ra8atori
65ere substr$nu8e?licenta,+,1&JFiF and substr$prenu8e,+,1&JFuF
order b, nu8e?licentaA
+1& Sa se a:seze rotun;it nu8arul de luni care au trecut de la data acti2arii
licentei ,
ur8atoarea zi de /arti dupa data acti2arii licentei , precu8 si ulti8a zi din luna
din care 9ace parte :
($ont*s +et,een) (-et "ay) ()ast "ay)(Roun")
select
round$8ont5s?bet6een$s,sdate,data?acti2arii&& luni,
ne-t?!a,$data?acti2arii,F/artiF& *r8atoarea?zi?de?/arti,
last?da,$data?acti2arii& ulti8a?zi
9ro8 e2identa?licentaA
+#

++& Sa se creeze o tabela 2irtuala pe baza tabelei <Cate3orii= , care sa contina
date doar despre cei care au atributul principal <A3ilit,=:
(.ie,)
create 2ie6 A3ilit, as select E 9ro8 cate3orii
65ere atribut?principalJFa3ilit,FA
select E 9ro8 A3ilit,A

+3& Sa se creeze o sec2ente pentru a asi3ura unicitatea c5eii pri8are pentru
tabla 4icente pt So9t6are, dupa care sa se insereze nu8ele unei noi licente :
</S7isualStudio= cu nu8ar de licente cu8parate ':
(Sec'enta)
create seRuence id?licenta
start 6it5 ( incre8ent b, 1
8a-2alue 100A
insert into
licente?pt?so9t6are
2alues$id?licenta"ne-t2al,
F/S7isualStudioF, F'F&A
+(

+0& Sa se a:seze nu8ele , prenu8ele , salariul si id>ul pro3ra8atorilor care au
salariul 8ai 8are ca 8edia salariilor , ei :ind ordonati dupa salariu :
((.G# !r"er by)
select sp"id?pro3ra8ator, sp"salariul, p"nu8e, p"prenu8e
9ro8 salarii?pro3ra8atori sp, pro3ra8atori p
65ere
p"id?pro3ra8atorJsp"id?pro3ra8ator and sp"
salariulC$select a23$salariul& 9ro8 salarii?pro3ra8atori&
order b, sp"salariulA

+'& Sa se selecteze toate datele despre inre3istrarile care au data cop,ri35t>ului
9acuta in /artie sau Au3ust :
(I-)
select E 9ro8 cate3orii
65ere e-tract$8ont5 9ro8 data?cop,ri35t& in $F03F,F0(F&A
+)

+6& Sa se a:seze id>ul pro3ra8atorilor care au salariul total cuprins intre #000 si
1+000:
(Sum) (Group by) (&a'ing)
select p"id?pro3ra8ator, su8$sp"salariul E sp"co8ision& Salariu?%otal
9ro8 salarii?pro3ra8atori sp, pro3ra8atori p
65ere p"id?pro3ra8atorJsp"id?pro3ra8ator
3roup b, p"id?pro3ra8ator
5a2in3 su8$sp"salariul E sp"co8ision& bet6een #000 and 1+000A

30

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