Sunteți pe pagina 1din 54

BAZE DE DATE

NDRUMAR DE LABORATOR
Liviu erbnescu
UNIVERSITATEA HYPERION
LISTA LUCRRILOR
1. Utilizarea unui modul de administrare a bazelor de date, instalare, conectare,
prezentare, comenzi simple. Organizarea SGBD PostgreSQL;
. !rearea bazelor de date, a sesiunilor "i a utilizatorilor. !reare tabele cu di#erse
tipuri de c$mpuri;
% &nterogarea bazei de date 'cazul unui singur tabel(
). Popularea bazei de date
*. !ombinarea interog+rilor
,. !ondi-ii de selec-ie a datelor
.. /0presii condi-ionale
1. 2ipuri de asocieri 3ntre 3nregistr+rile unor tabele
4. &nterogarea mai multor tabele
15. 6o"tenirea;
11. Subinterog+ri
1; 2ipul !7S2
1%. 8unc-ii SQL la ni#el de ser#er
1). 2este.
LABORATORUL NR.1
UTILIZAREA UNUI MODUL DE ADMINISTRARE A BAZELOR DE DATE, INSTALARE,
CONECTARE, PREZENTARE, COMENZI SIMPLE.
ORGANIZAREA SGBD PostgreSQL;
Scop:
1. Familiarizarea cu mediul PgAdmin3
2. nelegerea structurii unei !B"
Consideraii teoretice:
Definire SGBD
Termenul de baz de date (database) reprezint o colecie de informaii corelate, relaiile
logice dintre aceste informaii i tehnicile de prelucrare corespunztoare (cutare, sortare, tergere,
inserare, modificare, etc.).
Sistemul de gestiune a bazelor de date S.G.B.D. (Database Management System -
DBMS) reprezint sistemul de programe care permite accesarea bazei de date de ctre utilizatori,
accesare ce permite realizarea de operaii asupra bazei de date.
2.Arhitecturi SGBD
Clasificri SGBD
Clasificare dupa modelul de date:
odelul de ierarhic de date ! legturile dintre date sunt ordonate unic, accesul se
face numai prin "#rful ierarhiei, un subordonat nu poate a"ea dec#t un singur superior direct i nu
se poate a$unge la el dec#t pe o singur cale%
odelul de date retea ! datele sunt reprezentate ca &ntr!o mulime de ierarhii, &n
care un membru al ei poate a"ea oric#i superiori, iar la un subordonat se poate a$unge pe mai
multe ci%
odelul relational (aplicaii comerciale, "olum de date mare si tipuri de date simple)
! structura de baz a datelor este aceea de relaie ' tabel, limba$ul ()* ((tructured )uer+
*anguage) este specializat &n comenzi de manipulare la ni"el de tabel%
odelul obiect!orientat (aplicaiilor tiintifice, multimedia)!,ceste modele sunt
orientate pe reprezentarea semnificaiei datelor. (tructura de baz folosit pentru reprezentarea
datelor este cea de clas de obiecte definit prin abstractizare din entitatea fizic pe care o
regsim &n lumea real. ,ici e-ist entiti simple i clase de entiti care se reprezint prin obiecte
simple sau clase de obiecte, ordonate &n ierarhii de clase i subclase. ,cest tip de baz de date a
aprut din necesitatea gestionrii obiectelor comple-e: te-te, grafice, hri, imagini, sunete (aplicaii
multimedia) i a gestionrii obiectelor dinamice: programe, simulri
odelul obiect!relational
Clasificare dupa numarul de utilizatori
(isteme mono!utilizator
(isteme multi!utilizator
Clasificare dupa numarul de statii pe care este memorat baza de date:
.aze de date centralizate ( toate datele (si (/.0) sunt memorate pe un singur
host)
.aze de date distribuite ( at#t datele c#t i (/.0!ul sunt memorate pe mai multe
host!uri, conectate printr!o retea de comunicaie)
,rhitectura client!ser"er:
(er"er (bac1!end): (/.0!ul si baza de date
Client (front!end): program (programe) de aplicatie
,rhitectur local (fiiere comune mapate &n interiorul reelei) ' pentru controlul accesului
se folosesc fisiere s+stem
O baza de date trebuie s asigure:
abstractizarea datelor (date unice),
integrarea datelor (controlul corelaiei datelor),
integritatea datelor (respectarea restriciile de integritate a datelor pe parcursul operaiilor
()*),
securitatea datelor (controlul accesului la baza de date),
parta$area datelor (datele pot fi accesate de mai muli utilizatori, e"entual &n acelai timp),
Un SGBD trebuie s asigure urmtoarele activiti:
definirea i descrierea structurii bazei de date ' se realizeaz printr!un limba$ propriu,
limba$ de definire a datelor (*00)%
ncrcarea datelor n baza de date ' se realizeaz prin comenzi &n limba$ propriu(limba$
de manipulare a datelor (*0))%
accesul la date ' se realizeaz prin comenzi specifice din limba$ul de manipulare a datelor
(()*). ,ccesul la date se refer la operaiile de interogare i actualizare.
2nterogarea este comple- i presupune "izualizarea, consultarea, editarea de situaii de
ieire (rapoarte, liste, regsiri punctuale).
,ctualizarea presupune 3 operaiuni: adugare, modificare efectuate prin respectarea
restriciilor de integritate ale .0 i tergere%
ntreinerea bazei de date ' se realizeaz prin utilitare proprii ale (/.0%
securitatea datelor ' se refer la asigurarea confidenialitii datelor prin autorizarea i
controlul accesului la date pe mai multe ni"ele, criptarea datelor.
Arhitectura ostgreS!"
4ostgre()* utilizeaz un model client5ser"er. 6 sesiune 4ostgre()* const &n mai multe
procese:
7n !roces ser"er, care gestioneaz fiierele bazei de date, accept cone-iuni la bazele de
date dinspre aplicaiile client, realizeaz actiunile cerute de client pe bazele de date.
(er"erul de base de date se numete postgres .
A!licaia client a utilizatorului care dorete sa e-ecute operaii pe baza de date. ,plicaiile
client pot fi foarte di"erse: un client poate fi un utilitar linie de comand, o aplicaie grafic,
un ser"er 8eb care acceseaz baza de date pentru a afia pagini de 8eb sau un utilitar
specializat de gestiune a bazelor de date. 7nele aplicaii client sunt puse la dispoziie &n
distribuia 4ostgre()*. a$oritatea sunt dez"oltate de utilizatori.
Ca i &n cazul altor aplicaii client5ser"er, clientul si ser"er!ul pot fi pe host!uri diferite. 9n
acest caz ele comunic prin cone-iuni TC4524.
(er"erul de 4ostgre()* poate gestiona multiple cone-iuni concurente de la clieni a"#nd
chiar "ersiuni diferite pentru 4ostgre()*. 4entru aceasta el pornete c#te un nou proces pentru
fiecare cone-iune. 0in acel punct, clientul si un proces al ser"er!ului comunic far inter"enia
procesului iniial postgres. ,stfel procesul principal al ser"er!ului continu s atepte noi clieni.
#odul de lucru al serverului ostgreS!"
4ostgres:l foloseste un model client5ser"er numit ;proces per!user<. 6 sesiune 4ostgres consta din
cooperarea urmatoarelor procese (programe): 7n proces daemon de super"izare ($ostmaster),
aplicatia frontend a userului (programul $s%l), si unul sau mai multe ser"ere bac1end de baze de
date (procesul $ostgres el insusi)
7n singur proces postmaster conduce o colectie de baze de date pe o singura gazda.
,plicatiile frontend care doresc sa acceseze o baza de date printr!o instalare face apelul la librarie.
*ibraria trimite cererea userului prin retea la postmaster. 4aii prin care trece o cerere ()* pentru
a se obine un rezultat:
&'6 cone-iune dinspre o aplicaie la ser"er!ul de 4ostgre()* a fost stabilit. Clientul trimite o
cerere ctre ser"er i ateapt s primeasc rezultatele trimise de ser"er (aplicatia frontend trimite
o cerere la postmaster prin so1et!ul de retea). C#nd o cone-iune este stabilita, aceasta porneste
un nou proces ser"er bac1end si conecteaza procesul frontend la un nou ser"er. 0in acel punct,
procesul frontend si ser"erul bac1end comunica fara inter"entia postmasterului. Cu toate ca,
postmasterul merge intotdeauna, asteptand cereri, procesele frontend si bac1end "in si pleaca.
*ibraria libp: permite unui singur frontend sa faca multiple cone-iuni la procesele bac1end.
,plicatia frontend este un singur fir de e-ecutie suportat prin intermediul libp:.
postmasterul creaza un ser"er bac1end (porneste un nou proces ser"er bac1end si conecteaza
procesul frontend la un nou ser"er).
(.Parser!ul "erific cererea trimis de aplicaie si corectitudinea sinta-ei i creeaz un query tree.
3.Sistemul de rescriere preia :uery tree!ul creat de parser i caut e"entualele reguli (depozitate &n
cataloagele sistemului) care trebuie aplicate query tree!ului. ,cesta aplic transformarile descrise
&n regulile respecti"e.
=.4lanificatorul56ptimizatorul preia query tree!ul rescris si creeaz un plan de execuie al cererii
care "a fi de fapt intrarea pentru sistemul de e-ecuie a comenzilor.
>.(er"er!ul e-ecut recursi! plan tree!ul.
4ostmasterul si bac1endul ruleaza pe o aceeasi masina (ser"erul de date), in timp ce aplicatia
frontend poate rula oriunde.
*imba$ul S!")Structured !uer* "anguage+
()*(Structured !uer+ "anguage) este limba$ul de baze de date cel mai frec"ent utilizat iar
cele mai utilizate sunt standardele ()*?@(0.ase, Ao-4ro, (,cces, 4arado-, etc) i
()*@BB3(4ostgre()* ! 6pen(ource, 6racle, (!()*, etc) . Tipurile de baze de date "or fi
detaliate &n cursul ;,rhitecturi (/.0<.
*imba$ul ()* este ;case insensiti"e< (nu ine cont de litere mari i litere mici), &ns pentru
anumite denumiri pot e-ista reguli specifice fiecrei baze de date.
Desfurarea lucrrii:
1. e lanseaz# inter$aa %gAdmin3
2. e adaug# un n&u ser'er de (aze de date
3. e creaz# & n&u# (az# de date
). e creaz# d&u# gru%uri n&i de utilizat&ri
*. e creaz# utilizat&ri +i se adaug# ,n gru%urile de acces
-. e creaz# & n&u# sesiune
.. e creaz# ta(ele +i se adaug# c/m%uri cu di$erite ti%uri de date
0. e 'izualizeaz# ta(elele +i se ,ncearca editarea din mediu integrat 1%entru $iecare
ta(el '&m a'ea & c2eie %rimar# creat# ,n mediul integrat3
LABORATORUL NR.2
CREAREA BAZELOR DE DATE, A SESIUNILOR I A UTILIZATORILOR.
CREARE TABELE CU DIVERSE TIPURI DE CMPURI;
Scop:
1. negerea &%eraiil&r necesare alc#tuirii unei (aze de date
2. Analiza ti%uril&r de date din cadrul 4L
Consideraii teoretice:
&,& -AB.". )fr legturi /ntre ele+
#$#$# Definire tabele
%abelele sunt entiti logice de re!rezentare a informaiei stocate asemntoare foilor
de calcul tabelare. &entru bazele de date a"ansate ele nu au o cores!onden fizic cu un
anumit fiier. 'oloanele dintr$un tabel cores!und c(m!urilor (fields) din cadrul bazelor de
date iar r#ndurile din tabel corespund nregistrrilor (records). Crearea unei baze de date &ncepe
cu definirea i crearea tabelelor necesare.
#$#$2 %i!uri de date !redefinite) frec"ent utilizate
-0U10 D. DA-. 21.C3.4- U-0"05A-.
Baze de date ce au la
baz S!"6(
.7: ostgreS!" .7:Alias $gS!"
Descriere
bigint intC &ntreg, cu semn pe C octei
boolean boolean bool logic (True sau Aalse)
b+tesDnE b+tea
stocare binar (utilizat inclusi" pentru stocarea
imaginilor &n di"erse formate sau a metafiierelor)
character(n) character "ar+ing D (n) E "archar D (n) E ir cu ma-im n caractere
character D (n) E char D (n) E ir cu e-act n caractere
date date calendar date (+ear, month, da+)
double precision floatC real, precizie F> dubl
inet 24"= sau 24"G adres gazd (host address)
integer integer int, int= &ntreg, cu semn pe = octei
macaddr adres ,C
mone+ mone+ ;currenc+ ;(moned)
float(p,s) numeric D (p, s) E decimal D (p, s) E numeric cu precizie prestabilit
real float= real, precizie simpl
smallint smallint int@ intreg pe @ octei
autoinc serial serial= autoincrementare, intreg = octei
bigserial serialC autoincrementare, intreg C octei
te-t ir de caractere cu lungime "ariabil
time time D (p) E timp (ore,minute,secunde, ms)
timestamp timestamp D (p) E dat i timp &mpreun
-ml 0ate format H*
#$#$* 'reare tabele

I-:
(inta-a (simplificat):
+ot" parantezele drepte din expresie indic# o expresie opional# iar acoladele o sec!en# ce se
repet# $i este separat# prin !irgul#. De asemenea simbolul %&' semni(ic# %sau'.
2ar column,constraint - ... . este :
unde:
&/01A/2 342 reprezint cheia primar de ordonare(c#mpul sau c#mpurile dup care se
face ordonarea)
+5% +677 semnific faptul c nu se accept "alori "ide (fr date) pentru c#mpul
respecti"
C8.C9 permite "erificri suplimentare (de e-emplu: tem!,ma89:;)
.7: )rearea unui tabel cu denumirea !arm in cadrul sc*emei c2+ c,mpul data este de tipul dat#
calendaristic# i !a (i ini ializat cu data curent# atunci c,nd se adaug# o nou# -nregistrare+ la (el
se procedeaz# i pentru c,mpul moment+ c,mp ce contine ora+ minutul secunda i (ractiunea de
secund#. .abelul con ine !alorile m#surate dintr-un proces.
4ot: C#mpul sau c#mpurile care constituie cheia !rimar nu pot a"ea "alori 4U""
#$#$< Stergere tabele
I-: (inta-a:
#$#$: 'reare indecsi
Tabelele pot fi inde-ate &n scopul obinerii unor date ordonate dup unul sau mai multe criterii (de
obicei se ordoneaz dup unul sau mai multe c#mpuri). 2nde-area J7 schimb ordinea fizic a
&nregistrrilor. 4rin definirea indecsilor se creaz automat tabele de coresponden dintre ordinea
fizic a &nregistrrilor i cea logic (corespunztoare ordonrii).
simpli,
e-:
multipli,
e-:
pariali,
CREATE TABLE c2.parm!a"a !a"e DEFAULT CURRENT_DATE#
m$men" "ime DEFAULT CURRENT_TIME#m$!u% varc&ar'()#
pc" varc&ar*()#par varc&ar'*)#va% numeric#um c&ar'()#
i!+ seria%#CONSTRAINT ,-parm PRIMARY KEYi!+)).
CREATE TABLE c2.parm!a"a !a"e DEFAULT CURRENT_DATE#
m$men" "ime DEFAULT CURRENT_TIME#m$!u% varc&ar'()#
pc" varc&ar*()#par varc&ar'*)#va% numeric#um c&ar'()#
i!+ seria%#CONSTRAINT ,-parm PRIMARY KEYi!+)).
CREATE /TEMPORARY0TEMP1 TABLE
"ab%e-name (/2 c$%umn-name !a"a-"3pe
/ c$%umn-c$ns"rain" / ... 1 141)
CREATE /TEMPORARY0TEMP1 TABLE
"ab%e-name (/2 c$%umn-name !a"a-"3pe
/ c$%umn-c$ns"rain" / ... 1 141)
CREATE TABLE vremea$ras varchar5()#"emp-min int#
"emp-ma+ int#precipi"a"ii rea#!a"a !ate).
CREATE TABLE vremea$ras varchar5()#"emp-min int#
"emp-ma+ int#precipi"a"ii rea#!a"a !ate).
/ CONSTRAINT c$ns"rain"-name 1
2NOT NULL0NULL0UNI"UE in!e+-parame"ers0
PRIMARY KEY in!e+-parame"ers 0 C#ECK e+pressi$n )4
/ CONSTRAINT c$ns"rain"-name 1
2NOT NULL0NULL0UNI"UE in!e+-parame"ers0
PRIMARY KEY in!e+-parame"ers 0 C#ECK e+pressi$n )4
CREATE TABLE vremea2$ras varchar5() NOT NULL#
"emp-min int#"emp-ma+ int C#ECK("emp-ma+$*()
#precipi"a"ii rea#!a"a !ate PRIMARY KEY).
CREATE TABLE vremea2$ras varchar5() NOT NULL#
"emp-min int#"emp-ma+ int C#ECK("emp-ma+$*()
#precipi"a"ii rea#!a"a !ate PRIMARY KEY).
DROP vremea
DROP vremea
DROP TABLE "ab%ename
DROP TABLE "ab%ename
CREATE INDE% in!e+p"rVremea ON vremea(!a"a)
CREATE INDE% in!e+p"rVremea ON vremea(!a"a)
CREATE INDE% in!e+p"rVremea2
ON vremea(!a"a&$ras)
CREATE INDE% in!e+p"rVremea2
ON vremea(!a"a&$ras)
e-:
6rdonarea dat de indeci poate fi cresctoare (,(C ' implicit) sau descresctoare (0I(C) ' &n
e-emplul dat, c#mpul data "a fi ordonat cresctor iar c#mpul ora ul "a fi ordonat descresctor
(inta-a (simplificat):
unde:
ASC 5 D.SC semnific tipul de ordonare ascendent5descendent %
4U"" 201S- K "alorile 4U"" ("ide) sunt puse la &nceput iar (implicit pentru ASC)%
4U"" "AS- K "alorile 4U"" ("ide) sunt puse la sf#rit (implicit pentru D.SC).
#$#$: Stergere indecsi
I-:
(inta-a (simplificat):
Desfurarea lucrrii:
1. e e5ecut# e5em%lele c&res%unz#t&are din seciunea T6T6
CREATE INDE% in!e+p"rVremea6
ON vremea(!a"a#$ras) '#ERE (!a"a782.'.2((58)
CREATE INDE% in!e+p"rVremea6
ON vremea(!a"a#$ras) '#ERE (!a"a782.'.2((58)
CREATE INDE% in!e+p"rVremea9 ON vremea(!a"a& $ras DESC)
CREATE INDE% in!e+p"rVremea9 ON vremea(!a"a& $ras DESC)
CREATE/UNI"UE1INDE% name ON "ab%e(c$%umn/ASC0DESC 1
/ NULLS 2 FIRST 0 LAST 4 1) /'#ERE pre!ica"e1
CREATE/UNI"UE1INDE% name ON "ab%e(c$%umn/ASC0DESC 1
/ NULLS 2 FIRST 0 LAST 4 1) /'#ERE pre!ica"e1
DROP in!e+p"rVremea
DROP in!e+p"rVremea
DROP INDE% / IF E%ISTS 1 name
DROP INDE% / IF E%ISTS 1 name
LABORATORUL NR.3
INTEROGAREA BAZEI DE DATE !"#$% $&$' s'&g$r t"(e%)
Scop:
Utilizarea &%eraiil&r de inter&gare 1un singur ta(el3
Consideraii teoretice:
F!@!F &/476A/4A DA%475/ D0+ %AB47
4reluarea datelor din tabel (interogarea bazei de date) se realizeaz prin utilizarea instruciunii
S474'%.
+ot= /u conteaz# dac# codul S01 este scris pe un singur rand sau pe mai multe r,nuri $i nici
dac# -ntre cu!inte exist# un spaiu sau mai multe. Se recomand# scriere ast(el -nc,t codul s# se
citeasc# c,t mai u$or.
I-: preia &ntregul tabel "remea
( : specific preluarea tuturor c#mpurilor )
I-: afi eaz toate c#mpurile i toate &nregistrrile din tabel
I-: preia doar c#mpurile specificate &n interogare
preia numai ce &ndeplinete condiiilor din cadrul ;LMINI< (condiii la ni"el de &nregistrare)
ordoneaz date descresctor
(e-:data) i cresctor (e-% oras)
grupeaz datele dup anumite c#mpuri &n "ederea realizrii anumitor operaii
(e-. calc. mediei temp. min.)

aplic condiii la ni"el de grup
(e-: doar orasele cu media temp. min O>)
aplic condiii5restricii at#t la ni"el de grup c#t i la ni"el de &nregistrare
SELECT ( FROM vremea
SELECT ( FROM vremea
SELECT ( FROM c2.parm ORDER BY i!+.
SELECT ( FROM c2.parm ORDER BY i!+.
SELECT $ras# !a"a FROM vremea
SELECT $ras# !a"a FROM vremea
SELECT $ras# !a"a# precipi"a"ii
FROM vremea
'#ERE"emp-min)*()AND"emp-ma+$'())ORprecipi"a"ii)()
ORDER BY !a"a :ES;# $ras
SELECT $ras# !a"a# precipi"a"ii
FROM vremea
'#ERE"emp-min)*()AND"emp-ma+$'())ORprecipi"a"ii)()
ORDER BY !a"a :ES;# $ras
SELECT $ras# av+("emp-min) FROM vremea ,ROUP BY $ras
SELECT $ras# av+("emp-min) FROM vremea ,ROUP BY $ras
SELECT $ras# av+("emp-min)
FROM vremea ,ROUP BY $ras #A-IN, av+("emp-min)<*
SELECT $ras# av+("emp-min)
FROM vremea ,ROUP BY $ras #A-IN, av+("emp-min)<*
+ot= .oate c,mpurile din cadrul S212). trebuie s# se reg#seasc# -n G345P B6+ alt(el nu
este posibil# gruparea acestora
efectueaz operaii &ntre c#mpuri i afieaz rezultatul &ntr!un c#mp nou
&ntoarce un numr ma-im de &nregistrri
(e-: primele FB obinute &n urma ordonrii)
(inta-a (simplificat):
#$2$2 >uncii ce !ot fi a!licate asu!ra c(m!urilor n cadrul S474'% (selecie)
Auncia 0escriere
a"g(expresie) edia aritmetic a e-presiei
count(P) Jumrul de &nregistrri
count(expresie) Jumrul de &nregistrri pentru care "aloarea e-presiei nu este nul
ma-(expresie) Qaloarea ma-im pentru e-presie
min(expresie) Qaloarea minimm pentru e-presie
sum(expresie) (uma e-presiei
+ot" (e8!resie) poate (i un c,mp sau rezultatul unor operaii aplicate mai multor c,mpuri
I-emplu:
;REATE TA=LE c2.parm!a"a !a"e :E>AULT ;URRENT-:ATE#m$men" "ime :E>AULT
;URRENT-TI?E#m$!u% varc&ar'()#
pc" varc&ar*()#par varc&ar'*)#va% numeric#um c&ar'()#i!+ seria%#
;ONSTRAINT ,-parm PRI?ARY @EYi!+)).
se%ec" A >RO? c2.parm $r!er b3 i!+.
INSERT INTO c2.parmm$!u%#pc"#par#va%#um) VALUES 8?'8#8P'8#8par'8#'26.9#8V8)#
8?68#8P98#8par'8#'6.9#8V8)#
8?28#8P'8#8par'8#'*6.9#8V8)#8?'8#8P28#8par28#'.9#8V8)#8?'8#8P28#8par68#*6.9#8V8)#
8?28#8P'8#8par28#6'.9#8V8)#8?98#8P'8#8par'8#6.'9#8A8).
BBsca!e * Ci%e pen"ru !a"a in caCu% in care '(7va%7'((.
UP:ATE c2.parm SET !a"aD!a"aB* EHERE va%<'( an! va% 7'((.
SELECT $ras# av+("emp-min) '#ERE !a"a ) 82(.''.2((F8
FROM vremea ,ROUP BY $ras #A-IN, av+("emp-min)<*
SELECT $ras# av+("emp-min) '#ERE !a"a ) 82(.''.2((F8
FROM vremea ,ROUP BY $ras #A-IN, av+("emp-min)<*
SELECT $ras# "emp-min# "emp-ma+#
("emp-min."emp-ma+)/2.( AS me!ia FROM vremea
SELECT $ras# "emp-min# "emp-ma+#
("emp-min."emp-ma+)/2.( AS me!ia FROM vremea
SELECT $ras# !a"a# precipi"a"ii FROM vremea
ORDER BY !a"a#$ras LIMIT '(
SELECT $ras# !a"a# precipi"a"ii FROM vremea
ORDER BY !a"a#$ras LIMIT '(
SELECT / ALL 0 DISTINCT 1
A 0 e+pressi$n / AS $u"pu"-name 1
/ FROM Gr$m-i"em /# ...1 1
/ '#ERE c$n!i"i$n 1
/ ,ROUP BY e+pressi$n /# ...1 1
/ #A-IN, c$n!i"i$n /# ...1 1
/ ORDER BY e+pressi$n / ASC 0 DESC 1
/ NULLS 2 FIRST 0 LAST 4 11
/ LIMIT 2 c$un" 0 ALL 4 1
SELECT / ALL 0 DISTINCT 1
A 0 e+pressi$n / AS $u"pu"-name 1
/ FROM Gr$m-i"em /# ...1 1
/ '#ERE c$n!i"i$n 1
/ ,ROUP BY e+pressi$n /# ...1 1
/ #A-IN, c$n!i"i$n /# ...1 1
/ ORDER BY e+pressi$n / ASC 0 DESC 1
/ NULLS 2 FIRST 0 LAST 4 11
/ LIMIT 2 c$un" 0 ALL 4 1
BBaGiseaCa va%$ri%e me!ii Ci%nice p"r. Giecare m$!u%Bpc"Bpar
SELE;T !a"a#m$!u%#pc"#par# AVHva%) as va%m >RO? c2.parm HROUP =Y !a"a#m$!u%#pc"#par.
BB aGiseaCa va%$ri%e me!ii %a nive% !e m$!u%
SELE;T m$!u%#um# AVHva%) as va%m >RO? c2.parm HROUP =Y m$!u%#um.
BBaGisare m$!u%e ce au va%$ri <*(
SELE;T m$!u%#va% >RO? c2.parm EHERE va%<*(
BBaGiseaCa m$!u%e%e pen"ru care va%$ri%e me!ii sun" <'(
SELE;T m$!u%#AVHva%) as va%m >RO? c2.parm HROUP =Y m$!u% HAVINH AVHva%)<'(
BBaGiseaCa m$!u%e%e pen"ru care va%$ri%e me!ii sun" <'(# iar va%$ri%e c$mp$nen"e sun"
7'2(
SELE;T m$!u%#AVHva%) as va%m >RO? c2.parm EHERE va%7'2( HROUP =Y m$!u% HAVINH
AVHva%)<'(
BBca"e masura"$ri au va%$ri%e in"re 2( si '((I
SELE;T c$un"A) >RO? c2.parm EHERE va%<2( an! va% 7'((
BBaGiseaCa numaru% !e parame"rii i!en"ici pen"ru Giecare m$!u%
SELE;T m$!u%#par#c$un"par) as nr >RO? c2.parm HROUP =Y m$!u%#par.
BB
INSERT INTO c2.parmm$!u%#pc"#par#va%#um#i!+) VALUES 8?98#8P(8#8par'8#'26.9#8V8#5)
BB
se%ec" m$!u%#pc"#par# sumva%) as suma >RO? c2.parm HROUP =Y m$!u%#pc"#par.
BBB
BBinserrare inreJis"rare cu !a"a ca%en!aris"ica
INSERT INTO c2.parm!a"a#m$!u%#pc"#par#va%)
VALUES"$-!a"e86'.'2.2('28#8!!.mm.33338)#8?Y8#8p8#8par68#K*.*).
BBsau
INSERT INTO c2.parm!a"a#m$!u%#pc"#par#va%) VALUES82(''B'2B6'8#8?Y8#8p8#8par68#K*.*).

Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
LABORATORUL NR.4
POPULAREA BAZEI DE DATE
Scop:
Utilizarea $unciil&r de inserare7 c&%iere +i +tergere
Consideraii teoretice:
4opularea bazei de date cu &nregistrri noi se poate realiza &n dou moduri:
4rin utilizarea cu"#ntului cheie 04S.1-
4rin utilizarea cu"#ntului cheie CO;
&,<,& Adugarea de /nregistrri ) 04S.1- +
&,<,& ,& Adugarea unei singure /nregistrri
I-
9n acest caz, tipul i ordinea "alorilor introduse trebuie s corespund cu cea din C1.A-. -AB".
I-emplul de mai sus se mai poate scrie:
I-:

9n acest caz, tipul i ordinea "alorilor introduse &n ;"remea()< trebuie s corespund cu cea din
;Q,*7I(()<
(e pot aduga doar anumite c#mpuri din tabel (se adaug obligatoriu c#mpurile din cheia primar
' e-cepie fac c#mpurile de tip autoincrementare )
I-:
&,<,& ,( Adugarea mai multor /nregistrri= e7$licit
&,<,& ,< Adugarea mai multor /nregistrri= dintr,un alt tabel
4resupunem c e-ist un alt tabel denumit "remea@ cu o structur asemntoare cu primul tabel
("reamea)
INSERT INTO vremea -ALUES
(0=acau0& B2(& 92& (.2*& 06(.'2.2((FL)1
INSERT INTO vremea -ALUES
(0=acau0& B2(& 92& (.2*& 06(.'2.2((FL)1
INSERT INTO vremea$ras#"emp-min#"emp-ma+#
precipi"a"ii#!a"a) -ALUES
(0=acau0& B2(& 92& (.2*& 06(.'2.2((FL)1
INSERT INTO vremea$ras#"emp-min#"emp-ma+#
precipi"a"ii#!a"a) -ALUES
(0=acau0& B2(& 92& (.2*& 06(.'2.2((FL)1
INSERT INTO vremea$ras#precipi"a"ii#!a"a)
-ALUES (0=acau0& (.2*& 06(.'2.2((FL)1
INSERT INTO vremea$ras#precipi"a"ii#!a"a)
-ALUES (0=acau0& (.2*& 06(.'2.2((FL)1
INSERT INTO vremea$ras#precipi"a"ii#!a"a)
-ALUES (0=acau0& NULL& 06(.'2.2((FL)1
INSERT INTO vremea$ras#precipi"a"ii#!a"a)
-ALUES (0=acau0& NULL& 06(.'2.2((FL)1
INSERT INTO vremea$ras#precipi"a"ii#!a"a)
-ALUES (0=acau0& (.2*& 06(.'2.2((FL)&
(0Iasi0& NULL& 06'.'2.2((F0)&
(0;araca%0& 2344& 056.'2.2((F0)1
INSERT INTO vremea$ras#precipi"a"ii#!a"a)
-ALUES (0=acau0& (.2*& 06(.'2.2((FL)&
(0Iasi0& NULL& 06'.'2.2((F0)&
(0;araca%0& 2344& 056.'2.2((F0)1
I-:
9n cazul &n care cele dou tabele au aceeai ordine i aceleai tipuri de date se poate scrie
I-:
sau
I-:
(inta-a simplificat:
&,<,( Co$ierea datelor /n tabel utiliz>nd comada CO; )im$ortul datelor+
(e pot copia fiiere &ntregi cu date &ntr!un tabel. ,ceste fiiere, de regul, sunt fiiere format
CS3 )comma!separated values + , fiiere te-t a"#nd "alorile separate prin "irgul, iar "alorile ce
conin caracterul ;,< sunt scrise &ntre ghilimele.
I-:
9n acest e-emplu tabelul "remea este populat cu datele din fiierul tem!"remea.cs".
(inta-a simplificat:
unde:
D."0#0-.1 specific un alt delimitator &ntre "alorile din fiierul C(Q (implicit fiind "irgula)
4U"" specific sirul ce reprezint "aloarea J7** (implicit nu se scrie nimic ' adic dup
"irgul urmeaz tot "irgul)
CS3 specific faptul c este "orba de un fiier format C(Q (pot e-ista transferuri i cu
fiiere binare sau alte fiiere te-t ' aceste cazuri nu sunt tratate &n prezentul curs)
8.AD.1 specific dac primul r#nd din cadrul fiierului format C(Q este reprezentat de
numele coloanelor5 c#mpurilor
!UO-. specific caracterele &ntre care sunt puse "alorile ce conin i caracterul separator
(implicit caracterul ?).
0e obicei, aceast comand este utilizat la preluarea iniial a datelor, date e-istente &n alte baze
INSERT INTO vremea$ras#"emp-min#"emp-ma+#
precipi"a"ii#!a"a)
SELECT $ras#"emp-min#"emp-ma+#precipi"a"ii#
!a"a FROM vremea2 '#ERE !a"a ) 82(.''.2((F81
INSERT INTO vremea$ras#"emp-min#"emp-ma+#
precipi"a"ii#!a"a)
SELECT $ras#"emp-min#"emp-ma+#precipi"a"ii#
!a"a FROM vremea2 '#ERE !a"a ) 82(.''.2((F81
INSERT INTO vremea$ras#"emp-min#"emp-ma+
#precipi"a"ii#!a"a)
SELECT A FROM vremea2 '#ERE !a"a ) 82(.''.2((F81
INSERT INTO vremea$ras#"emp-min#"emp-ma+
#precipi"a"ii#!a"a)
SELECT A FROM vremea2 '#ERE !a"a ) 82(.''.2((F81
INSERT INTO vremea SELECT A FROM vremea2
'#ERE !a"a ) 82(.''.2((F81
INSERT INTO vremea SELECT A FROM vremea2
'#ERE !a"a ) 82(.''.2((F81
INSERT INTO "ab%e / ( c$%umn /# ...1 ) 1
2 DEFAULT -ALUES 0 -ALUES
2 e+pressi$n 0 DEFAULT 4 /# ...1 )
/# ...1 0 Muer3 4
INSERT INTO "ab%e / ( c$%umn /# ...1 ) 1
2 DEFAULT -ALUES 0 -ALUES
2 e+pressi$n 0 DEFAULT 4 /# ...1 )
/# ...1 0 Muer3 4
COPY vremea FROM L;NO"es"O"empvremea.csvL 'IT# csv.
COPY vremea FROM L;NO"es"O"empvremea.csvL 'IT# csv.
COPY "ab%ename / c$%umn /# ...1 ) 1 FROM 0Gi%ename0
// 'IT# 1
/ DELIMITER / AS 1 0!e%imi"er0 1
/ NULL / AS 1 0nu%% s"rinJ0 1
/ CS- / #EADER 1 / "UOTE / AS 1 LMu$"eL 1
COPY "ab%ename / c$%umn /# ...1 ) 1 FROM 0Gi%ename0
// 'IT# 1
/ DELIMITER / AS 1 0!e%imi"er0 1
/ NULL / AS 1 0nu%% s"rinJ0 1
/ CS- / #EADER 1 / "UOTE / AS 1 LMu$"eL 1
de date sau &n fiiere de tip @"S 5 te7t. Comanda CO; adaug noile date la cele "echi. 0e
asemenea, &n cursurile urmtoare se "a detalia utilizarea comenzii CO; pentru e-portul datelor &n
format CS3.
&,<,< Atergerea /nregistrrilor dintr,un tabel
I-:

terge toate &nregistrrile din tabelul "remea.
I-:
terge toate &nregistrrile anterioare datei specificate
(inta-a simplificat:
unde
O4"; este utilizat &n cazul tabelelor ierarhizate pentru a nu terge i &nregistrrile din
;tabelele copil< ce depind de tabelul respecti"
US04G specific alte tabele utilizate &n condiia ?@4/4
I-: presupunem e-istena unui nou tabel munici!ii
I-
:
i tergem toate &nregistrrile din "remea care apar i &n tabelul munici!ii
I-:
&,<,B Actualizarea datelor dintr,un tabel
Comanda UDA-. actualizeaz "alorile din tabelul dat, pentru &nregistrrile rezultate &n urma
aplicrii condiiei din cadrul ?@4/4, cu "alorile i pentru c#mpurile e-plicitate &n seciunea S4%
I-:
(unt modificate doar "alorile c#mpurilor date de S4% pentru &nregistrrile date de ?@4/4
(inta-a simplificat:
DELETE FROM vremea .
DELETE FROM vremea .
DELETE FROM vremea '#ERE !a"a 7 82(.''.2((F81
DELETE FROM vremea '#ERE !a"a 7 82(.''.2((F81
DELETE FROM / ONLY 1 "ab%e / / AS 1 a%ias 1
/ USIN, usinJ%is" 1/ '#ERE c$n!i"i$n 1
DELETE FROM / ONLY 1 "ab%e / / AS 1 a%ias 1
/ USIN, usinJ%is" 1/ '#ERE c$n!i"i$n 1
CREATE TABLE municipii
!enumire-$ras c&arac"er var3inJ5() NOT NULL#
p$pu%a"ie in"eJer# supraGa"a numeric)
CREATE TABLE municipii
!enumire-$ras c&arac"er var3inJ5() NOT NULL#
p$pu%a"ie in"eJer# supraGa"a numeric)
DELETE FROM vremea USIN, municipii
'#ERE vremea3$rasDmunicipii3!enumire-$ras
DELETE FROM vremea USIN, municipii
'#ERE vremea3$rasDmunicipii3!enumire-$ras
UPDATE vremea SET "emp-min * "emp-min7'#
"emp-ma+ * "emp-minP2(# precipi"a"ii * (
'#ERE $ras * 8Iasi8) AND !a"a ) 8'.(F.2((F8)
AND !a"a $ 86'.(5.2((F8).
UPDATE vremea SET "emp-min * "emp-min7'#
"emp-ma+ * "emp-minP2(# precipi"a"ii * (
'#ERE $ras * 8Iasi8) AND !a"a ) 8'.(F.2((F8)
AND !a"a $ 86'.(5.2((F8).
UPDATE / ONLY 1 "ab%e / / AS 1 a%ias 1
SET 2 c$%umn D 2 e+pressi$n 0 DEFAULT 4 4 /# ...1
/ FROM Gr$m%is" 1 / '#ERE c$n!i"i$n 1
UPDATE / ONLY 1 "ab%e / / AS 1 a%ias 1
SET 2 c$%umn D 2 e+pressi$n 0 DEFAULT 4 4 /# ...1
/ FROM Gr$m%is" 1 / '#ERE c$n!i"i$n 1
unde:
O4"; este utilizat &n cazul tabelelor ierarhizate pentru a nu modifica i &nregistrrile din
;tabelele copil< ce depind de tabelul respecti"
21O# specific alte tabele utilizate &n condiia ?@4/4
D4>A67% A preia "alorile implicite sau +677 dac nu sunt specificate
I-:
I-emplu:
BBmai mu%"e "abe%eN
BBin "abe% cu in"rari%e
BBs" "abe% cu s"$curi%e
BBbp "abe% cu reCervari%e b$r!er$u !e preparare) BBB "abe%u% se "ransG$rma in b%
BBb% "abe% cu %ivrari%e
BB"r "abe% cu "ransG. in"re maJaCii
BB!iG "abe% cu !iGeren"e%e aparu"e
BBn$m "abe% n$menc%a"$r
;REATE TA=LE c6.ini! seria%# sn varc&ar2()#c$! varc&ar2()#GurniC$r varc&ar*()#
c!a varc&ar'()# !a"a !a"e :E>AULT ;URRENT-:ATE#M"3 numeric# um varc&ar'()#
!ep varc&ar'()#amp varc&ar'()#;ONSTRAINT ,-in PRI?ARY @EYi!)).
;REATE TA=LE c6.s"!ep varc&ar'()#amp varc&ar'()#i! in"#M"3GiC numeric#M"3!isp numeric#
;ONSTRAINT ,-s" PRI?ARY @EY!ep#amp#i!)).
crea"e "ab%e c6.bpnrbp in"#!ep varc&ar'()#amp varc&ar'()#i! in"#M"3 numeric#
!a"a !a"e :E>AULT ;URRENT-:ATE#!es" varc&ar*()#
;ONSTRAINT ,-bp PRI?ARY @EYnrbp#!ep#amp#i!)).
;REATE "ab%e c6.b%nrb% in"#!ep varc&ar'()#amp varc&ar'()#i! in"#M"3 numeric#
!a"a !a"e :E>AULT ;URRENT-:ATE#!es" varc&ar*()#
;ONSTRAINT ,-b% PRI?ARY @EYnrb%#!ep#amp#i!)).
crea"e "ab%e c6."r!a"a !a"e :E>AULT ;URRENT-:ATE#!epsrs varc&ar'()#ampsrs varc&ar'()#
!ep!es" varc&ar'()#amp!es" varc&ar'()#i! in"# M"3 numeric#i!+ seria%#
;ONSTRAINT ,-"r PRI?ARY @EYi!+)).
crea"e "ab%e c6.!iG!a"a !a"e :E>AULT ;URRENT-:ATE# !ep varc&ar'()#amp varc&ar'()#
i! in"#M"3 numeric#i!+ seria%# ;ONSTRAINT ,-!iG PRI?ARY @EYi!+)).
crea"e "ab%e c6.n$mc$! varc&ar2()#!escriere varc&ar'(()#reG-"e&nica varc&ar*()#
reG-c$mercia%a varc&ar*()#;ONSTRAINT ,-n$m PRI?ARY @EYc$!)).
INSERT INTO c6.insn#c$!#GurniC$r#c!a#M"3#um#!ep#amp)
VALUES8s'8#8c$!'8#8GurniC$r'8#NULL#'#8buc8#8A'8#8A'('8)#
8s'28#8c$!'98#8GurniC$r'A8#NULL#'#8buc8#8A'8#8A'('8)#
8s'68#8c$!'8#8GurniC$r'8#NULL#'#8buc8#8A'8#8A'('8)#
NULL#8c$!('8#8GurniC$r'8#NULL#*#8buc8#8A'8#8A'(28)#
NULL#8c$!(28#8GurniC$r'8#NULL#'(#8buc8#8A'8#8A'('8)#
NULL#8c$!'8#8GurniC$r'8#NULL#'#8buc8#8A'8#8A'('8).
se%ec" A Gr$m c6.in
ALTER TA=LE c6.in A:: ;OLU?N br in".
up!a"e c6.in se" brD' Q&ere !a"aD82(''B(6B''8.
Desfurarea lucrrii:
1. e ruleaz# e5em%lul din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
UPDATE vremea SET "emp-min D "emp-minB'#
"emp-ma+ D "emp-minP2(# precipi"a"ii D DEFAULT
FROM municipii
'#EREvremea.$ras D municipii.!enumire-$ras )
AND!a"a<8'.(F.2((F8)AND!a"a786'.(5.2((F8).
UPDATE vremea SET "emp-min D "emp-minB'#
"emp-ma+ D "emp-minP2(# precipi"a"ii D DEFAULT
FROM municipii
'#EREvremea.$ras D municipii.!enumire-$ras )
AND!a"a<8'.(F.2((F8)AND!a"a786'.(5.2((F8).
LABORATORUL NR.5
COMBINAREA INTEROGRILOR
Scop:
1. Realizarea de &%eraii de selecie cu mai multe ta(ele
2. Realizarea de &%eraii de ti%ul UP"AT6 ,n care sunt im%licate mai multe ta(ele.
3. Realizarea de &%eraii de ti%ul "6L6T6 ,n care sunt im%licate mai multe ta(ele.
). O%eraii de ti% UN8ON
*. O%eraii de ti% 69:6PT
Consideraii teoretice
a+ Uniune
2mplicit (D0S%0+'%), prin uniunea celor dou interogri, &nregistrrile multiple, identice, "or aprea
o singur dat. 4rin utilizarea comenzii A77 acestea nu "or mai fi eliminate.
I-:
4utem a"ea :
0enumirea c#mpului rezultat "a fi cea din prima interogare
b+ 0ntersecie
4rin utilizarea comenzii 04-.1S.C- "or fi selectate doar &nregistrrile comune din cadrul
interogrilor
I-:
c+ Diferen
in"er$JareR' UNION /ALL1 in"er$JareR2
in"er$JareR' UNION /ALL1 in"er$JareR2
SELECT $ras FROM vremea
UNION
SELECT !enumire-$ras FROM municipii
SELECT $ras FROM vremea
UNION
SELECT !enumire-$ras FROM municipii
in"er$JareR' UNION in"er$JareR2 ... UNION in"er$JareRn
in"er$JareR' UNION in"er$JareR2 ... UNION in"er$JareRn
in"er$JareR' INTERSECT /ALL1 in"er$JareR2
in"er$JareR' INTERSECT /ALL1 in"er$JareR2
SELECT $ras FROM vremea INTERSECT
SELECT !enumire-$ras FROM municipii
SELECT $ras FROM vremea INTERSECT
SELECT !enumire-$ras FROM municipii
in"er$JareR' E%CEPT /ALL1 in"er$JareR2
in"er$JareR' E%CEPT /ALL1 in"er$JareR2
4rin utilizarea comenzii .@C.- "or fi selectate doar &nregistrrile care se regsesc &n rezultatul
primei interogri dar care nu se regsec i &n rezultatul celei de a doua interogri.
I-:
9n toate cele trei cazuri c#mpurile din cadrul seleciilor trebuie s fie de acelasi timp, altfel fiind
necesar con"ertirea acestora la tipul respecti" prin utilizarea operatorului 'AS%.
&,C O$eratorul CAS-
Iste utilizat pentru con"ertirea tipului datelor
I-:
I-:
I-:
I-:
(inta-a simplificat:
Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
SELECT $ras FROM vremea
E%CEPT
SELECT !enumire-$ras FROM municipii
SELECT $ras FROM vremea
E%CEPT
SELECT !enumire-$ras FROM municipii
SELECT 6.2' AS Sn9:ericS
UNION SELECT '.
SELECT 6.2' AS Sn9:ericS
UNION SELECT '.
SELECT ' AS Sn9:ericS
UNION
SELECT CAST86.'98 AS n9:eric).
SELECT ' AS Sn9:ericS
UNION
SELECT CAST86.'98 AS n9:eric).
SELECT 8=acau8 AS Svarchar2()S
UNION
SELECT CAST86.'98 AS varchar2()).
SELECT 8=acau8 AS Svarchar2()S
UNION
SELECT CAST86.'98 AS varchar2()).
SELECT $ras# ca;t"emp-min a; varchar'())
AS "emp-min-c& FROM vremea
SELECT $ras# ca;t"emp-min a; varchar'())
AS "emp-min-c& FROM vremea
CAST e+pressi$n AS "3pe )
CAST e+pressi$n AS "3pe )
LABORATORUL NR.6
CONDIII DE SELECIE A DATELOR
Scop:
1. Utilizarea c&ndiiil&r de selecie ,n c&n$&rmitate cu ti%ul datel&r
2. Utilizarea $iltrel&r %ariale
3. Utilizarea seleciil&r ,n di'erse cazuri
Consideraii teoretice:
Iste utilizat pentru con"ertirea tipului datelor
I-:
I-:
I-:
I-:
(inta-a simplificat:
Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
SELECT 6.2' AS Sn9:ericS
UNION SELECT '.
SELECT 6.2' AS Sn9:ericS
UNION SELECT '.
SELECT ' AS Sn9:ericS
UNION
SELECT CAST86.'98 AS n9:eric).
SELECT ' AS Sn9:ericS
UNION
SELECT CAST86.'98 AS n9:eric).
SELECT 8=acau8 AS Svarchar2()S
UNION
SELECT CAST86.'98 AS varchar2()).
SELECT 8=acau8 AS Svarchar2()S
UNION
SELECT CAST86.'98 AS varchar2()).
SELECT $ras# ca;t"emp-min a; varchar'())
AS "emp-min-c& FROM vremea
SELECT $ras# ca;t"emp-min a; varchar'())
AS "emp-min-c& FROM vremea
CAST e+pressi$n AS "3pe )
CAST e+pressi$n AS "3pe )
LABORATORUL NR.7
EXPRESII CONDIIONALE
Scop: Realizarea e5%resiil&r c&ndii&nale ,n cadrul inter&g#ril&r
Consideraii teoretice:
(inta-a simplificat:
I-:
Nezultatul e-presiei este pus &n noul c#mp e"aluare.
BB TRANTA;TIONS SUL BB
:ROP TA=LE c'(."'.
;REATE TA=LE c'(."'a seria% PRI?ARY @EY# b in").
INSERT INTO c'(."'b) VALUES *)#F)#5).
=EHIN.
INSERT INTO c'(."'b) VALUES V)#'()#'').
BBSAVEPOINT abc.
BBse simu%eaCa $ er$are
INSERT INTO c'(."'b) VALUES '2)#'6)#a'9).
BBROLL=A;@ TO abc.
INSERT INTO c'(."'b) VALUES '*)#'*)#'F).
UP:ATE c'(."' SET bDbP'(((.
;O??IT.
BBse%ec" A >RO? c'(."'.
BB a"en"ie %a =EHIN BB nu se va se%ec"a in b%$cu% !e sus# p"r. e+ecu"ie
BB raman prime%e "rei inreJ nem$!iGica"e W
Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
CASE '#EN c$n!i"i$n T#EN resu%"
/'#EN ...1
/ELSE resu%"1
END
CASE '#EN c$n!i"i$n T#EN resu%"
/'#EN ...1
/ELSE resu%"1
END
SELECT "emp-minP"emp-ma+)O2.( a; "emp-me!ie#
CASE '#EN"emp-minP"emp-ma+)O2.( )7D( T#EN 8HER8
'#EN"emp-minP"emp-ma+)O2.( )<()AND
"emp-minP"emp-ma+)O2.( )7'*) T#EN 8>RIH8
'#EN "emp-minP"emp-ma+)O2.( )<6( T#EN 8;AL:8
ELSE 8NOR?AL8
END AS eva%uare
FROM vremea
SELECT "emp-minP"emp-ma+)O2.( a; "emp-me!ie#
CASE '#EN"emp-minP"emp-ma+)O2.( )7D( T#EN 8HER8
'#EN"emp-minP"emp-ma+)O2.( )<()AND
"emp-minP"emp-ma+)O2.( )7'*) T#EN 8>RIH8
'#EN "emp-minP"emp-ma+)O2.( )<6( T#EN 8;AL:8
ELSE 8NOR?AL8
END AS eva%uare
FROM vremea
LABORATORUL NR.8
TIPURI DE ASOCIERI NTRE NREGISTRRILE UNOR TABELE
Scop:
nelegerea %&si(ilit#il&r de as&ciere ,ntre ,nregistr#ri
Consideraii teoretice:
9ntr!o baz de date relaional tabelele sunt corelate, pentru ca datele memorate &n tabele
diferite s poat fi asociate corect atunci c#nd din baza de date se solicit anumite informaii. (e
pot realiza asocieri datele din tabele dup criterii logice i de &nrudire a datelor. ,socierile sunt
posibile &n faza de definire a structurii tabelelor. C#mpurile comune prin care se face corelarea sunt
date de cheia $rimar pentru un tabel i respecti" chei e7terne pentru tabelele asociate.
6rice tabel cuprine unul sau mai multe c#mpuri, care intr &n componena unei c*ei primare,
utilizat pentru diferenierea unei &nregistrri de celelalte. ,socierea a dou tabele (tabel !rinte i
tabel co!il) se face printr!un c#mp special cu o trimitere la cheia primar a tabelului subordonat
(tabelul copil).
6 baz de date poate fi format din mai multe tabele a"#nd diferite legturi &ntre acestea.
Tipurile de legturi dintre dou tabele pot fi:
asocierea( legtura ) de ti! unu la unu )&:&+ ' unei &nregistrri dintr!un tabel &i
corespunde o singur &nregistrare &n cealalt tabel%
asocierea( legtura ) de ti! unu la mai muli (&:#) ' unei &nregistrri dintr!un tabel &i
corespund mai multe &nregistrri &n cealalt tabel%
asocierea( legtura ) de ti! muli la muli (#:4) ' mai multor &nregistrri dintr!un tabel &i
corespund mai multe &nregistrri &n cealalt tabel.
Asocierea( legtura ) de ti! unu la unu )&:&+
9nregistrrile din dou tabele se afl &n asocierea unu la unu dac unei &nregistrri dintr!un
tabel &i corespunde (sau nu) o singur &nregistrare din cellalt tabel. *egatura dintre cele doua
tabele se face pe baza cheilor primare.
,cest tip de asociere este utilizat mai rar. I-ist, totui, cazuri &n care este necesar i
util stabilirea unei astfel de relaii.
I-:
Asocierea( legtura ) de ti! unu la mai muli (&:4)
0ou tabele , i . se afl &n asociere F:J dac unei &nregistrri din tabelul , &i corespund mai
multe &nregistrri &n tabelul .. Cheia primara din tabelul ;parinte<(,) se adaug &n tabelul ;copil<(.)
sub forma de cheie e-tern.
I-:
VREMEA
oras
temp_min
temp_max
precipitatii
MUNICIPII
denumre!ora
s
populatie
supraata
!"!
Asocierea( legtura ) de ti! muli la muli (#:4) ' mai multor &nregistrri dintr!un tabel le
corespund mai multe &nregistrri &n cealalt tabel. 9n "ederea implementrii practice se adaug un
tabel suplimentar care "a contine cheile primare ale tabelelor initiale si campuri referitoare la
asocierea dintre tabelele ;parinti<. Cheia primar din tabela intermediar "a fi o cheie compusa.
'rearea cheilor !rimare i a cheilor e8terne
Cheia $rimar din tabel impune unicitatea "alorilor c#mpurilor din cadrul cheii primare pentru
fiecare &nregistrare. (pecificarea cheii primare se face cu modificatorul 10#A1; 9.;. 'heia
strin sau e8tern se declar prin modificatorul 2O1.0G4 9.;.
I-:
sau
#U$ET
nume
supraata
populatie
LOCALITATE
denumre
supraata
populatie
po%itie_&eo&r'
!"N
AUTORI
nume
""#u
ed"ura
an_aparitie
(I(LIOTECA
cota
""#u
autor1
ed"ura
an_aparitie
M"N
CREATE TABLE municipii
!enumire-$ras varchar5() PRIMARY KEY#
supraGa"a n9:eric#
p$pu%a"ie int
).
CREATE TABLE municipii
!enumire-$ras varchar5() PRIMARY KEY#
supraGa"a n9:eric#
p$pu%a"ie int
).
CREATE TABLE vremea2
$ras varchar5() PRIMARY
KEY REFERENCES municipii!enumire-$ras)#
"emp-min int#"emp-ma+ int#
precipi"a"ii rea#!a"a !ate).
CREATE TABLE vremea2
$ras varchar5() PRIMARY
KEY REFERENCES municipii!enumire-$ras)#
"emp-min int#"emp-ma+ int#
precipi"a"ii rea#!a"a !ate).
CREATE TABLE vremea
$ras varchar5() REFERENCES municipii!enumire-$ras)#
"emp-min int#
"emp-ma+ int#
precipi"a"ii rea#
!a"a !ate
).
CREATE TABLE vremea
$ras varchar5() REFERENCES municipii!enumire-$ras)#
"emp-min int#
"emp-ma+ int#
precipi"a"ii rea#
!a"a !ate
).
,t#t pentru 4N2,NR SIR c#t i pentru A6NI2/J SIR putem a"ea unul sau mai multe c#mpuri,
separate prin "irgul.
Asigurarea integritii refereniale
7na din problemele importante ale unei baze de date este asigurarea consistenei i
corelrii datelor. 4entru aceasta putem impune respectarea unei restricii la adugarea sau
eliminarea &nregistrrilor &n tabelele corelate. ,plicarea acestor restricii ne d posibilitatea s
asigurm o proprietate important a bazelor de date relaionale numit integritate referenial.
,ceste restricii se refer la tergerea datelor, la inserareaBadugarea datelor sau
modificarea lor.
6peraiile de tergere i inserare au &n clauza LMINI i c#mpurile ce constituie cheile primare.
0e asemenea operaia de adugare impune specificarea obligatorie a c#mpurilor din cheia
primar, acestea fiind diferite de J7** i fiind unice &n cadrul tabelului.
I-emplu:
INSERT INTO c9.in SELE;T A >RO? c6.in
INSERT INTO c9.s" SELE;T A >RO? c6.s"
se%ec" A Gr$m c9.in
se%ec" A Gr$m c9.s"
se%ec" A Gr$m reCervari
se%ec" A Gr$m c9.bp
se%ec" A Gr$m se%ec"ie
se%ec" A Gr$m c9.b%
se%ec" A Gr$m c9."r
BBup!a"e se%ec"ie se" nrbpD'(' Q&ere nrbpD'

BB aGiseaCa can"i"a"i reCerva"e
se%ec" A Gr$m c9.s" Q&ere M"3GiC7<M"3!isp
BBa!auJarea b$r!er$u%ui !e recep"ie curen" in s"$c
INSERT INTO c9.s"!ep#amp#i!#M"3GiC#M"3!isp)
SELE;T !ep#amp#i!#M"3#M"3 >RO? c9.in EHERE brD'.
BB reCervarea can"i"a"i%$r si crearea %inii%$r !in bp
BBpp . ca reCervam i! 2#6 si !in * reCervam 6 buc
BB ceea ce reCervam punem in"rBun "abe% "emp$rar p"r.se%ec"ie)
;REATE TE?PORARY TA=LE reCervari!ep varc&ar'()#
amp varc&ar'()#i! in"eJer# M"3 numeric).
INSERT INTO reCervari VALUES8A'8#8A'('8#2#')#8A'8#8A'('8#6#')#8A'8#8A'('8#*#6).
BB caCu% a) !in s"$c se sca!e "$a"a %inia D< %inia va Gi s"earsa
BB caCu% b) !in s"$c# !e pe $ %inie se reCerva !$ar $ par"e !in can"i"a"e

UP:ATE c9.s" SET M"3!ispDM"3!ispBM"3 >RO? reCervari
EHERE s".i!DreCervari.i! an! s".!epDreCervari.!ep an! s".ampDreCervari.amp
CREATE TABLE vremea2

$ras character var<in+5() NOT NULL#


"emp-min inte+er#
"emp-ma+ inte+er#
precipi"a"ii rea#
!a"a !ate#
CONSTRAINT vremea2-p,e3 PRIMARY KEY $ras)#
CONSTRAINT vremea2-$ras-G,e3 FOREI,N KEY $ras)
REFERENCES municipii !enumire-$ras)
).
CREATE TABLE vremea2

$ras character var<in+5() NOT NULL#


"emp-min inte+er#
"emp-ma+ inte+er#
precipi"a"ii rea#
!a"a !ate#
CONSTRAINT vremea2-p,e3 PRIMARY KEY $ras)#
CONSTRAINT vremea2-$ras-G,e3 FOREI,N KEY $ras)
REFERENCES municipii !enumire-$ras)
).
inser" in"$ c9.bp SELE;T '(' as nrbp# !ep#amp#i!#M"3#;URRENT-:ATE#8:es"'8 as !es" >RO?
reCervari.
BB va%i!area bp
BBse%ec"ie
;REATE TE?PORARY TA=LE se%ec"ienrbp in"eJer# !ep varc&ar'()#
amp varc&ar'()#i! in"eJer# M"3-c$nGirma"a numeric).
BBse presupune ca nu se mai %ivreaCa "rei si se %ivreaCa numai 2 buc
INSERT INTO se%ec"ie VALUES'('#8A'8#8A'('8#2#')#'('#8A'8#8A'('8#6#')#
'('#8A'8#8A'('8#*#2).
BBva%i!are
UP:ATE c9.s" SET M"3!ispDM"3!ispPbp.M"3BM"3-c$nGirma"a >RO? se%ec"ie#c9.bp
EHERE s".i!Dse%ec"ie.i! an! s".!epDse%ec"ie.!ep an! s".ampDse%ec"ie.amp an!
s".i!Dbp.i! an! s".!epDbp.!ep an! s".ampDbp.amp an! bp.nrbpD'('. BBpp. ca nr.bp
es"e '('
BB inserare in b%
INSERT INTO c9.b% SELE;T bp.nrbp#bp.!ep#bp.amp#bp.i!#M"3-c$nGirma"a#bp.!a"a#bp.!es"
>RO? c9.bp#se%ec"ie
EHERE se%ec"ie.nrbpD'(' an! se%ec"ie.nrbpDbp.nrbp an! se%ec"ie.!epDbp.!ep
an! se%ec"ie.ampDbp.amp an! se%ec"ie.i!Dbp.i!. BBpp. ca nr.bp es"e '('
BBs"erJere bp va%i!a"
:ELETE >RO? c9.bp EHERE nrbpD'('.
BB TRANS>ERUL INTRE ?AHATII
BBa)
BB pp "ransGeru% M"3D' p"r. I:D9 !e pe amp%asamen"u% A' OA'(2 pe A2OA2(6
BBsi a M"3D' p"r. I:D' !e pe amp%asamen"u% A'OA'(' pe A2O2(9
ALTER TA=LE c9."r A:: ;OLU?N b"r in".
INSERT INTO c9."rb"r#!a"a#!epsrs#ampsrs#!ep!es"#amp!es"#i!#M"3)
VALUES9('#;URRENT-:ATE#8A'8#8A'('8#8A28#8A2(68#9#')#
9('#;URRENT-:ATE#8A'8#8A'('8#8A28#8A2(98#'#').
BBveriGica !aca e+is"a !es"ina"ie !ep#amp#i!) DD :ep:es"# Amp:es"#I!)
BBSELE;T EXISTSSELE;T A >RO? c9.s"# EHERE !ep
BB TRANS>ERUL INTRE ?AHATII
BBa)
BB pp "ransGeru% M"3D' p"r. I:D9 !e pe amp%asamen"u% A' OA'(2 pe A2OA2(6
BBsi a M"3D' p"r. I:D' !e pe amp%asamen"u% A'OA'(' pe A2O2(9
BBALTER TA=LE c9."r A:: ;OLU?N b"r in".
BBINSERT INTO c9."rb"r#!a"a#!epsrs#ampsrs#!ep!es"#amp!es"#i!#M"3)
BB VALUES9('#;URRENT-:ATE#8A'8#8A'('8#8A28#8A2(68#9#')#
BB 9('#;URRENT-:ATE#8A'8#8A'('8#8A28#8A2(98#'#').
BBveriGica !aca e+is"a !es"ina"ie !ep#amp#i!) DD :ep:es"# Amp:es"#I!)
se%ec" A Gr$m c9.s".
se%ec" A Gr$m c9."r.
SELE;T EXISTSSELE;T A >RO? c9.s" EHERE !epD8A28 an! ampD8A2(68).
BB pen"ru a nu %ucra inreJis"rare cu inreJis"rare
BBse%ec"am !a"e%e !in "ransGer care nu e+is"a in s"$c si %e insaeram in s"$c
INSERT INTO c9.s"!ep#amp#i!#M"3GiC#M"3!isp)
SELE;T "r.!ep!es"#"r.amp!es"#"r.i!#M"3#M"3 >RO? c9."r EHERE NOT EXISTS
SELE;T A >RO? c9.s"#c9."r
EHERE "r.!ep!es"Ds".!ep AN: "r.amp!es"Ds".amp AN: "r.i!Ds".i!) AN:
"r.b"rD9('.
BBsca!e pe ce%e !in %$ca"ia sursa
Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
LABORATORUL NR.9
INTEROGAREA MAI MULTOR TABELE
Scop:
1. O%eraii de ti% L6FT OUT6R ;O8N
2.O%eraii de ti% R8!<T OUT6R ;O8N
3.O%eraii de ti% FULL OUT6R ;O8N
Consideraii teoretice:
,tunci c#nd &n clauza 21O# a unei comenzi S.".C- apar mai multe tabele se realizeaz
produsul cartezian al acestora. 0e aceea numrul de linii rezultat crete considerabil, fiind
necesar restricionarea acestora cu o clauza D8.1..
,tunci c#nd este necesar obinerea de informaii din mai multe tabele se utilizeaz clauza
EO04. 9n acest fel liniile dintr!un tabel pot fi puse &n legtura cu cele din alt tabel conform "alorilor
comune ale unor coloane.
'lauza C50+
Clauza EO04 este utilizat pentru preluarea informaiilor din dou sau mai multe tabele &n
condiiile e-istenei unor legturi logice &ntre anumite c#mpuri din cadrrul tabelelor.
EO04 &ntoarce &nregistrrile ce respect condiiile impuse de EO04 &ntre tabele. EO04 nu se refer la
intersecii ci la produse carteziene. 0i"ersele tipuri de EO04 reduc produsele pun#nd di"erse
condiii pe una sau mai multe dintre mulimi.
4resupunem c un tabel TF cu J &nregistrri i un tabel T@ cu &nregistrri.
C1OSS EO04
%# '/5SS C50+ %2 &ntoarce pentru fiecare &nregistrare din TF toate &nregistrrile din T@. Tabelul
rezultat "a a"ea J- &nregistrri
Sinta8a=
Clauzele 044.1 i OU-.1 sunt optionale. 044.1 este implicit, iar ".2-, 10G8- sau 2U""
implic OU-.1.
Clauza O4 este asemntoare cu D8.1..
&rinci!alele forme ale clauzei C50+=
0++4/ C50+ (Donciune intern A de ti! egalitate) ! pentru fiecare r&nd (&nregistrare) NF
din tabelul TF, tabelul rezultat &n urma aplicrii clauzei T62J "a a"ea o &nregistrare din
T' 2 =INNER> ? @ LEFT ? RI,#T ? FULL A =OUTER> A
BOIN T2 ON b$$%ean-e+pressi$n
T' 2 =INNER> ? @ LEFT ? RI,#T ? FULL A =OUTER> A
BOIN T2 ON b$$%ean-e+pressi$n
T' 2 =INNER> ? @ LEFT ? RI,#T ? FULL A =OUTER> A
BOIN T2 USIN, ( Y$in c$%umn %is" )
T' 2 =INNER> ? @ LEFT ? RI,#T ? FULL A =OUTER> A
BOIN T2 USIN, ( Y$in c$%umn %is" )
T' NATURAL @ =INNER> ? @ LEFT ? RI,#T ?
FULL A =OUTER> A BOIN T2
T' NATURAL @ =INNER> ? @ LEFT ? RI,#T ?
FULL A =OUTER> A BOIN T2
tabelul N@ care &ndeplinete condiia de $onctiune cu NF.
I-:
echi"alent d.p.d.". al scrierii cu:
74>% 56%4/ C50+ (Donciune e8tern la st(nga)
4entru &nceput se realizeaz o $onciune intern. ,poi, fiecare r#nd din TF (TF st#nga, T@ dreapta)
care nu satisface $onciunea cu T@ este adugat a"#nd "alori J7** pentru c#mpurile
corespondente din T@. Tabelul rezultat "a a"ea, cel putin r#ndurile din tabelul TF.
/0G@% 56%4/ C50+ (Donciune e8tern la st(nga)
4entru &nceput se realizeaz o $onciune intern. ,poi, fiecare r#nd din T@ (TF st#nga, T@ dreapta)
care nu satisface $onciunea cu TF este adugat a"#nd "alori J7** pentru c#mpurile
corespondente din TF. Tabelul rezultat "a a"ea, cel putin r#ndurile din tabelul T@.
>677 56%4/ C50+ (Donciune total)
4entru &nceput se realizeaz o $onciune intern. ,poi, fiecare r#nd din T@ (TF st#nga, T@ dreapta)
care nu satisface $onciunea cu TF este adugat a"#nd "alori J7** pentru c#mpurile
corespondente din TF. ,poi, fiecare r#nd din T@ (TF st#nga, T@ dreapta) care nu satisface
$onciunea cu TF este adugat a"#nd "alori J7** pentru c#mpurile corespondente din TF.
0e asemenea, se pot lega mai multe clauze de tipul 6J &ntr!o instruc iune de tipul T62J, utiliz#nd,
de e-emplu, sinta-a:
6 opera ie de tip ".2- EO04 sau 10G8- EO04 se poate imbrica &ntr!o opera ie de tipul
044.1 EO04, dar o opera ie de tipul 044.1 EO04 nu se poate imbrica &ntr!o opera ie de tipul
".2- EO04 sau 10G8- EO04.
48em!lu=
BB se creaCa 2 "abe%e
;REATE TA=LE c*-'."'a' varc&ar'() PRI?ARY @EY# a2 in").
SELECT v.$ras#v.!a"a FROM vremea v
INNER BOIN municipii m ON v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a FROM vremea v
INNER BOIN municipii m ON v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a FROM vremea v# municipii m
'#ERE v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a FROM vremea v# municipii m
'#ERE v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a FROM vremea v
LEFT OUTER BOIN municipii m ON v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a FROM vremea v
LEFT OUTER BOIN municipii m ON v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a#m.p$pu%a"ie
FROM vremea' v RI,#T OUTER BOIN municipii m
ON v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a#m.p$pu%a"ie
FROM vremea' v RI,#T OUTER BOIN municipii m
ON v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a#m.p$pu%a"ie
FROM vremea' v FULL OUTER BOIN municipii m
ON v.$rasDm.!enumire-$ras
SELECT v.$ras#v.!a"a#m.p$pu%a"ie
FROM vremea' v FULL OUTER BOIN municipii m
ON v.$rasDm.!enumire-$ras
SELECT cZmpuri
FROM "abe%' INNER BOIN "abe%2
ON "abe%'.cZmp' $pera"$r !e c$mpara ie "abe%2.cZmp' AND
ON "abe%'.cZmp2 $pera"$r !e c$mpara ie "abe%2.cZmp2) OR
ON "abe%'.cZmp6 $pera"$r !e c$mpara ie "abe%2.cZmp6).
SELECT cZmpuri
FROM "abe%' INNER BOIN "abe%2
ON "abe%'.cZmp' $pera"$r !e c$mpara ie "abe%2.cZmp' AND
ON "abe%'.cZmp2 $pera"$r !e c$mpara ie "abe%2.cZmp2) OR
ON "abe%'.cZmp6 $pera"$r !e c$mpara ie "abe%2.cZmp6).
;REATE TA=LE c*-'."2b' varc&ar'() PRI?ARY @EY# b2 in"# b6 in").
BB se p$pu%eaCa "abe%e%e
INSERT INTO c*-'."'a'#a2) VALUES
8aaa'8#*)#8aaa28#K)#8aaa68#F)#8aaa98#K).
INSERT INTO c*-'."2b'#b2#b6) VALUES
8bb'8#**#')#8bb28#*K#2)#8aaa68#*K#6)#8aaa98#K#6)#8aaa'8#*#6).
BB se veriGica c$n"inu"u% "abe%e%$r
se%ec" A Gr$m c*-'."'.
se%ec" A Gr$m c*-'."2.
BBB INTERSE;TIA
BBin"ersec"ia ce%$r 2 "abe%e !upa un camp N punem campu% a' DD b'
BBvarian"a '
SELE;T A >RO? c*-'."'#c*-'."2 EHERE "'.a'D"2.b'.
BBvarian"a 2
SELE;T A >RO? c*-'."' INNER [OIN c*-'."2 ON "'.a'D"2.b'.
BB Gara c$n!i"ie !e %eJa"ura in"re "abe%e
SELE;T A >RO? c*-'."'#c*-'."2 .BBD< pr$!us car"eCian * + 9 D 2( inreJis"rari
BB in"ersec"ia ce%$r 2 "abe%e !upa 2 campuri a' cu b' si a2 cu b2
BB varian"a '
SELE;T A >RO? c*-'."'#c*-'."2 EHERE "'.a'D"2.b' AN: "'.a2D"2.b2.
BBvarian"a 2
SELE;T A >RO? c*-'."' INNER [OIN c*-'."2 ON "'.a'D"2.b' AN: "'.a2D"2.b2.
BBvarian"a 6
SELE;T A >RO? c*-'."' INNER [OIN c*-'."2 ON "'.a'D"2.b' EHERE "'.a2D"2.b2.
BB ;ON;ATENARE TA=ELE
BB varian"a ' DD< V inreJ
SELE;T a'#a2 >RO? c*-'."'
UNION
SELE;T cas"b2 as "e+")#b6 >RO? c*-'."2.
BB sau DDD< F inreJ 6 inreJ. sun" i!en"ice)
SELE;T a'#a2 >RO? c*-'."'
UNION
SELE;T b'#b2 >RO? c*-'."2.
BB sau DDD< '2 inreJ 6 inreJ. sun" i!en"ice)
SELE;T a'#a2 >RO? c*-'."'
UNION
SELE;T b'#b2 >RO? c*-'."2
UNION
SELE;T b'#b6 >RO? c*-'."2.
BBEX;EPT
BB "' B "2
SELE;T a'#a2 >RO? c*-'."'
EX;EPT
SELE;T b'#b2 >RO? c*-'."2.
BB "2 B "' ce avem in "2 si nu avem in "')
SELE;T b'#b2 >RO? c*-'."2
EX;EPT
SELE;T a'#a2 >RO? c*-'."'.
BB [OIN BBB EXTERN
BB LE>T OUTER [OIN
BB vers 'N "$" "abe%u% "' P camp c$resp. !in "2 p"r. "'# a%"Ge% ump%e b' si b2 cu NULL
SELE;T a'#a2#b'#b2 >RO? c*-'."' LE>T OUTER [OIN c*-'."2 ON "'.a'D"2.b'.
BBvers. 2
SELE;T a'#a2#b'#b2 >RO? c*-'."2 LE>T OUTER [OIN c*-'."' ON "'.a'D"2.b'.
BB RIHHT OUTER [OIN
BB vers ' DDD vers 2 LE>T [OIN)
SELE;T a'#a2#b'#b2 >RO? c*-'."' RIHHT OUTER [OIN c*-'."2 ON "'.a'D"2.b'.
BB vers 2 DDD vers ' LE>T [OIN)
SELE;T a'#a2#b'#b2 >RO? c*-'."2 RIHHT OUTER [OIN c*-'."' ON "'.a'D"2.b'.
BB>ULL OUTER [OIN
BBvers' i!em cu vers2) "' P "2 pe c$%$ane ) BB sun" e%imina"e !up%ica"e%e !upa
campuri%e !e p$"rivire
SELE;T a'#a2#b'#b2#b6 >RO? c*-'."' >ULL OUTER [OIN c*-'."2 ON "'.a'D"2.b'.
BBvers2 BB i!em
SELE;T a'#a2#b'#b2#b6 >RO? c*-'."2 >ULL OUTER [OIN c*-'."' ON "'.a'D"2.b'.
Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
LABORATORUL NR.10
MO$TENIREA
Scop:
8m%lementarea mecanismel&r %ri'ind m&+tenirea ,n (azele de date
Consideraii teoretice:
,cest concept a aprut &n standardul ()*?? .i este specific sistemelor de baze de date orientate
obiect.
I-:
Cele dou formulri pot fi &nlocuite prin:
7n tabel poate s moteneasc unul sau mai multe tabele.
9n cazul &n care se face referire la un anumit tabel din cadrul motenirii se utilizeaz clauza
O4";
,ceasta clauz poate fi utilizat &n combinaie cu : S.".C-= UDA-. sau D.".-..
Comanda "a afia c#mpurile: oras) !o!ulatie) su!rafata)
Dudet. 0e
asemenea "a afia numai r#ndurile adugate cu comanda 04S.1- &n cadrul tabelului
munici!ii,2.
Comanda "a afia c#mpurile: oras) !o!ulatie) su!rafata) tara.
0e
asemenea "a afia numai r#ndurile adugate cu comanda 04S.1- &n cadrul tabelului ca!itale,2.
CREATE TABLE municipii-'
Yu!e" character var<in+('(() NOT NULL&
$ras character var<in+(5() NOT NULL&
p$pu%a"ie inte+er& supraGa"a n9:eric)1
CREATE TABLE municipii-'
Yu!e" character var<in+('(() NOT NULL&
$ras character var<in+(5() NOT NULL&
p$pu%a"ie inte+er& supraGa"a n9:eric)1
CREATE TABLE capi"a%e-'
("ara character var<in+('(() NOT NULL&
$ras character var<in+(5() NOT NULL&
p$pu%a"ie inte+er& supraGa"a n9:eric)1
CREATE TABLE capi"a%e-'
("ara character var<in+('(() NOT NULL&
$ras character var<in+(5() NOT NULL&
p$pu%a"ie inte+er& supraGa"a n9:eric)1
CREATE TABLE $rase
$ras character var<in+(5() NOT NULL#
p$pu%a"ie inte+er# supraGa"a n9:eric)1
CREATE TABLE $rase
$ras character var<in+(5() NOT NULL#
p$pu%a"ie inte+er# supraGa"a n9:eric)1
CREATE TABLE municipii-2 (Yu!e" character
var<in+('(() NOT NULL) IN#ERITS $rase).
CREATE TABLE municipii-2 (Yu!e" character
var<in+('(() NOT NULL) IN#ERITS $rase).
CREATE TABLE capi"a%e-2 ("ara character
var<in+('(() NOT NULL) IN#ERITS $rase).
CREATE TABLE capi"a%e-2 ("ara character
var<in+('(() NOT NULL) IN#ERITS $rase).
SELECT ( FROM municipii-2
SELECT ( FROM municipii-2
SELECT ( FROM capi"a%e-2
SELECT ( FROM capi"a%e-2
Comanda "a afia c#mpurile: oras) !o!ulatie) su!rafata. 0e
asemenea "a afia
toate r#ndurile adugate cu comanda 04S.1-= indiferent dac a fost realizat &n cadrul tabelului
ca!itale,2) munici!ii,2 sau a tabelului orase.
0e asemenea, comanda "a afia doar r#ndurile adugate cu
comanda 04S.1- &n cadrul tabelului orase.
0e e-emplu, dac &n tabelul orase sunt adugate > &nregistrri, &n tabelul munici!ii,2 sunt
adugate = &nregistrri, iar &n tabelul ca!itale,2 sunt adugate @ &nregistrri tabelul orase "a
conine FF &nregistrri, tabelul munici!ii,2 "a conine = &nregistrri iar tabelul ca!itale,2 "a
conine @ &nregistrri,
Utergerea unei &nregistrri din tabelele munici!ii,2 sau ca!itale,2 , fr utilizarea clauzei
O4";, "a duce i la tergerea &nregistrrilor respecti"e din tabelul orase.
Utergerea unei &nregistrri din tabelul orase, fr utilizarea clauzei O4";, "a duce i la
tergerea &nregistrrilor corespondente ! dac e-ist ! din tabelele munici!ii,2 sau ca!itale,2 .
,ceste obser"aii sunt "alabile i &n cazul modificrilor (utilizarea comenzii UDA-.).
I-:
!BPen"ru m$n$"$riCarea unui pr$ces "e&n$%$Jic sun" u"i%iCa"e urma"$are%e "abe%eN
masmasura"$ri) si parparame"rii)
BB;$!uri%e punc"e%$r !e masurapc"?as) sun" unice %a nive% !e m$!u%# iar c$!uri%e
parame"ri%$r masura"i c$!Par) sun" unice %a nive%u% !e masura
BB:e asemenea presupunem ca mai e+is"a inca "rei "abe%e mas'#mas2 si mas6 avan! s"ruc"ura
i!en"ica cu mas.
BB'.scrie"i c$man!a SUL p" crearea "abe%e%$r mas si par!enumiri%e campuri%$r# "ipuri%e
!e !a"e#c&ei%e primare si e+"erne)
;REATE TA=LE cK.mas!a"a !a"e :E>AULT ;URRENT-:ATE# $ra "ime :E>AULT ;URRENT-TI?E#
c$!unicpar varc&ar2()#
va% numeric#$pera"$r varc&ar6()#
;ONSTRAINT ,-mas PRI?ARY @EY!a"a#$ra#c$!unicpar)#
;ONSTRAINT G-maspar >OREIHN @EYc$!unicpar) RE>EREN;ES cK.parc$!unicpar)).
;REATE TA=LE cK.parm$!u% varc&ar'()# pc"mas varc&ar'()#c$!par varc&ar'()#
c$!unicpar varc&ar2()# um varc&ar'()#va%min numeric# va%ma+ numeric#
;ONSTRAINT ,-par PRI?ARY @EYc$!unicpar)).
BB2.scrie"i c$man!a SUL p" inserarea unei inreJis"rari in "abe%u% mas
INSERT INTO cK.par VALUES8?'8#8P?'8#8par'8#8A((p8#8V8#(.9#''.F)#
8?68#8P?'8#8par'8#8A('p8#8V8#B(.*#'F.F)#
8?'8#8P?28#8par28#8A(2p8#8V8#(.'#'(.6).
INSERT INTO cK.masc$!unicpar#va%# $pera"$r)
VALUES8A('p8#*'.6#8$p'8)#8A((p8#*2.'#8$p28).
INSERT INTO cK.masc$!unicpar#va%# $pera"$r)
VALUES 8A('p8#'*.6#8$p'8)#8A((p8#*'.6#8$p'8).
INSERT INTO cK.masc$!unicpar#va%# $pera"$r)
VALUES 8A('p8#'.6#8$p'8)#8A(2p8#*'.'#8$p'8).
INSERT INTO cK.masc$!unicpar#va%# $pera"$r)
VALUES 8A('p8#''.6#8$p'8)#8A((p8#*'.2#8$p'8).
BB6.scrie"i c$man!a SUL pen"ri aGisarea "u"ur$r masura"$ri%$r !in Ciua curen"a !in
"abe%u% mas)
SELE;T A >RO? cK.mas EHERE !a"aD;URRENT-:ATE.
BB9.scrie"i c$man!a SUL pen"ru in%$cuirea va%$rii 8A((p8 a camp%u%ui c$!unicpar# !in
"abe%u% mas# cu va%$area 8A(2p8
UP:ATE cK.mas SET c$!unicparD8A(2p8 EHERE c$!unicparD8A((p8.
SELECT ( FROM $rase
SELECT ( FROM $rase
SELECT ( ONLY FROM $rase
SELECT ( ONLY FROM $rase
BB*.scrie"i c$man!a SUL pen"ru s"erJerea inreJis"rari%$r# an"eri$area Ci%ei curen"e# care
nu au punc"u% va% c$mp%e"a"
:ELETE >RO? cK.mas EHERE !a"aD;URRENT-:ATEB' AN: va% IS NULL.
BBK.scrie"i c$man!a SUL pen"ru aGisarea va%$ri%$r me!ii pen"ru parame"rii masura"i# in
Ciua an"eri$area !e ca"re $pera"$ru% user6
SELE;T c$!unicpar#avJva%) >RO? cK.mas EHERE !a"aD;URRENT-:ATEB' AN:D $pera"$rD8user68
HROUP =Y c$!unicpar.
BBF.scrie"i c$man!a SUL pen"ru aGisarea numari%ui !e masura"$ri !in Ciua curen"a# pen"ru
Giecare punc" !e masura
SELE;T m$!u%#pc"mas#c$un"mas.A) as nr-mas >RO? cK.mas#cK.par EHERE
mas.c$!unicparDpar.c$!unicpar
AN: !a"aD;URRENT-:ATE HROUP =Y m$!u%# pc"mas.
BB
Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
LABORATORUL NR.11
SUBINTEROGRI
Scop:
Utilizarea su(inter&g#ril&r
Consideraii teoretice:
(ubinterogrile permit crearea unui tabel &n cadrul unei interogri. ,cestea sunt scrise &ntre
paranteze rotunde i au un A"0AS.
Subinterogri scalare ! ,cestea sunt interogrile care &ntorc un singur r#nd i o singur
coloan. Ile se scriu &ntre paranteze rotunde. 9n cazul &n care suinterogarea &ntoarce mai multe
&nregistrri "om a"ea eroare. 9n cazul &n care nu &ntoarce nici o &nregistrare "aloarea rezultat a
interogrii este considerat J7**.
I-:

I-presii specifice subinterogrilor
.@0S-S
2ntoarce true daca subinterogarea are ca rezultat cel puin o &nregistrare, alfel &ntoarce false.
04 caz &n care subinterogarea &ntoarce o singur coloan
Qerific dac e-presia se alfl &n rezultatul subinterogrii
sau caz &n care subinterogare &ntoarce acelai numr de coloane ca
i
constructorul de &nregistrare (ro8 constructor)
6bs: Constructorul de &nregistrare formeaz o &nregistrare utliz#nd cu"#ntul 1OD, de e-:
I-:
4O- 04 asemntoare cu 04 dar cu rezultatul negat.
A"" caz &n care subinterogarea &ntoarce o singur coloan
Qerific dac e-presia satisface condiia pentru fiecare &nregistrare din subinterogare
sau caz &n care subinterogare &ntoarce acelai numr de coloane
ca i
SELECT $ras&(SELECT av+(precipi"a"ii)
FROM vremea
'#ERE capi"a%e-2.$rasDvremea.$ras)
AS me!ia FROM capi"a%e-2.
SELECT $ras&(SELECT av+(precipi"a"ii)
FROM vremea
'#ERE capi"a%e-2.$rasDvremea.$ras)
AS me!ia FROM capi"a%e-2.
E%ISTS subMuer3)
E%ISTS subMuer3)
e+pressi$n IN subMuer3)
e+pressi$n IN subMuer3)
R$Q c$ns"ruc"$r IN subMuer3)
R$Q c$ns"ruc"$r IN subMuer3)
RO''2#'9#8TEST8)
RO''2#'9#8TEST8)
SELECT RO''2#'9#8IASI8)
INSELECT "emp-min#"emp-ma+#$ras
FROM vremea) AS VERI>I;A
SELECT RO''2#'9#8IASI8)
INSELECT "emp-min#"emp-ma+#$ras
FROM vremea) AS VERI>I;A
e+pressi$n ALL subMuer3)
e+pressi$n ALL subMuer3)
R$Q c$ns"ruc"$r ALL subMuer3)
R$Q c$ns"ruc"$r ALL subMuer3)
constructorul de &nregistrare (ro8 constructor)
Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
2. e c&ntinu# cu e5em%lele c&res%unz#t&are din seciunea T6T6
LABORATORUL NR.12
TIPUL CAST
Scop: Utilizarea cast=ului
Consideraii teoretice:
Iste utilizat pentru con"ersia tipurilor de date, &n "ederea e"alurii unor e-presii &n care
intr datele respecti"e sau pentru adugarea acestora &n tabele ce au un alt format de date.
I-:
7n caz aparte de cast este funcia to,date( test, te-t ) care realizeaz con"ersia din ir de
caractere &n .format de tip dat calendaristic.
I-:
I-:
BB'
crea"e "ab%e cF.bib%c$"a varc&ar'()#au"$ri varc&ar*()#
e!i"ura varc&ar6()# an in"# %$ca%i"a"ea varc&ar2()# c$ns"rain" ,-bib% PRI?ARY
@EYc$"a)).
BB2
crea"e "ab%e cF.$perc$"a varc&ar'()# i!+ seria%# nume varc&ar2()#
!a"a-im !a"e :E>AULT ;URRENT-:ATE# !ura"a in"# !a"a-re !a"e#
c$ns"rain" ,-$per PRI?ARY @EYi!+)#
c$ns"rain" G-$per >OREIHN @EYc$"a) RE>EREN;ES cF.bib%c$"a)).
BB6
INSERT INTO cF.bib% VALUES8('B2''698#8a''#a'28#8Te&nica8#'VV'#8=ucures"i8)#
8('B222698#8a2'#a228#8Te&nica8#'VV*#8=ucures"i8)#
8('B6*'698#8a6'#a628#8P$%ir$m8#'V5(#8Iasi8)#
8('B9''698#8a9'#a928#8E!uS$G"8#'V52#8=acau8)#
8('B*''668#8a*'#a*28#8Eur$bi"8#'VV'#8Timis$ara8)#
8('BK''6'8#8aK'#aK28#8S$%ness8#'V5(#8Timis$ara8).
INSERT INTO cF.$perc$"a#nume#!a"a-im#!ura"a#!a"a-re)
VALUES8('B9''698#8nume'8#82((9B(*B'28#5#NULL)#
8('B222698#8nume'8#82((9B(*B'28#'#NULL)#
8('B*''668#8nume28#82((*B(*B228#'#82((KB(KB268)#
8('B*''668#8nume68#82((KB(KB268#9#NULL)#
8('B*''668#8nume'8#82((KB(FB298#2#NULL)#
8('B222698#8nume98#82((FB(*B2(8#'#NULL).
BBse%ec" A Gr$m cF.bib%
BBse%ec" A Gr$m cF.$per
BB !e%e"e Gr$m cF.bib%
BB !e%e"e Gr$m cF.$per Q&ere i!+<'2
BB sBa s"ers c&eia e+"erna p"r. simp%iGicare
BB9.
!e%e"e Gr$m cF.bib% Q&ere an7'VV9 an! an<'V5'.
CAST e+pressi$n AS "3pe )
CAST e+pressi$n AS "3pe )
SELECT $ras# ca;t"emp-min a; n9:eric)#
ca;tprecipi"a"ii a; inte+er) a; PrecIn"#
ca;t"emp-ma+ a; varchar'*)) FROM vremea
SELECT $ras# ca;t"emp-min a; n9:eric)#
ca;tprecipi"a"ii a; inte+er) a; PrecIn"#
ca;t"emp-ma+ a; varchar'*)) FROM vremea
INSERT INTO vremea$ras#!a"a)
-ALUES8Ti"u8# tC_!ate825.'(.2((58#8!!.mm.33338))
INSERT INTO vremea$ras#!a"a)
-ALUES8Ti"u8# tC_!ate825.'(.2((58#8!!.mm.33338))
BB*
se%ec" A Gr$m cF.bib% Q&ere e!i"ura %i,e 8E\8.
BBK
se%ec" !a"a-im as !a"a# c$un" $per.A) as nr-car"i Gr$m cF.$per Jr$up b3 !a"a-im
BBF
se%ec" bib%.c$"a# bib%.au"$ri# bib%.e!i"ura >RO? cF.bib%#cF.$per
Q&ere bib%.c$"aD$per.c$"a an! $per.!a"a-im782((KB('B('8an! $per.!a"a-re is nu%%.
BB5

up!a"e cF.bib% se" e!i"uraD8Eur$bi"8 >RO? cF.$per Q&ere $per.c$"aDbib%.c$"a an!
an 7 'VV( an! e!i"uraD8S$%ness8 an! $per.!a"a-re is n$" nu%%
BBV
!e%e"e Gr$m cF.$per usinJ cF.bib% Q&ere $per.c$"aDbib%.c$"a an! $per.!a"a-re is nu%%
an! an7'VV*
BB'(
se%ec" bib%.c$"a#bib%.au"$ri#bib%.e!i"ura Gr$m cF.bib%#cF.$per
Q&ere $per.c$"aDbib%.c$"a an! $per.!a"a-re is n$" nu%% an! bib%.e!i"ura i%i,e 8\bi"\8.
BB''
se%ec" bib%.c$"a# bib%.au"$ri# bib%.e!i"ura Gr$m cF.bib%#
se%ec" c$"a Gr$m cF.bib% EX;EPT se%ec" c$"a Gr$m cF.$per) as par
Q&ere bib%.c$"aDpar.c$"a.
BBsau
;REATE TE?P TA=LE "mpc$"a varc&ar'()).
INSERT INTO "mp SELE;T c$"a Gr$m cF.bib% EX;EPT se%ec" c$"a Gr$m cF.$per.
SELE;T bib%.c$"a#bib%.au"$ri#bib%.e!i"ura >RO? cF.bib%#"mp EHERE bib%.c$"aD"mp.c$"a.
BB'2
se%ec" bib%.c$"a#bib%.au"$ri#bib%.e!i"ura >RO? cF.bib%#cF.$per
Q&ere bib%.c$"aD$per.c$"a an! ;URRENT-:ATEP2D!a"a-imP!ura"a.
BB'6
SELE;T bib%.c$"a# sumpar.nr-Ci%e-imprumu") as nr-Ci%e-imprumu"
>RO? cF.bib%#
SELE;T c$"a# ;ASE EHEN !a"a-re IS NOT NULL THEN sum!a"a-reB!a"a-im)
EHEN !a"a-re IS NULL THEN sum;URRENT-:ATEB!a"a-im)
EN: as nr-Ci%e-imprumu" >RO? cF.$per HROUP =Y c$"a#!a"a-re
)as par
EHERE par.c$"aDbib%.c$"a HROUP =Y bib%.c$"a
BB'9
se%ec" bib%.c$"a Gr$m cF.bib%#cF.$per Q&ere $per.c$"a is n$" nu%%) an! bib%.c$"a is n$"
nu%%).
BB 6K 7DD pr$!us car"eCian
Desfurarea lucrrii:
1. e ruleaz# e5em%lele din seciunea te&retic#
. Se continu+ cu e0emplele corespunz+toare din sec-iunea 2/S2/
LABORATORUL NR.13
%UNCII S&L LA NI'EL DE SER'ER(
Scop: FFamiliarizarea cu $unciile 4L la ni'el de ser'er ,n 'ederea unei mai (une
se%ar#ri a c&dului 4L de inter$aa cu utilizat&rul
Consideraii teoretice:
In acest subcapitol sunt prezentate un set de functii simple la nivel server. Pentru rularea
acestor exemple se va creea schema c10_2.
Pentru fiecare functie explicitata este detaliat si apelul acesteia .
Aiecare functie are un corp (delimitat cu V.60RV sau VV) si un NIT7NJ.
I-:
BB >unc"i$nN c'(-2.G')
BBcreaaCa un "abe%# ap$i separa") insereaCa $ inreJis"rare si Gace $ ac"ua%iCare
;REATE OR REPLA;E >UN;TION c'(-2.G')
RETURNS v$i! AS
]=O:Y]
BB;REATE TA=LE c'(-2."'a seria%# b in").
INSERT INTO c'(-2."'b) VALUES '(')#'(2)#'(6).
UP:ATE c'(-2."' SET bDbP'(((.
]=O:Y]
LANHUAHE sM% VOLATILE
;OST '((.
ALTER >UN;TION c'(-2.G') OENER TO p$s"Jres.
;O??ENT ON >UN;TION c'(-2.G') IS 8Gunc"ie SULWWW8.
BBape% Gunc"ie sM%
se%ec" c'(-2.G').
BBGunc"ie cu un arJumen"
;REATE OR REPLA;E >UN;TION c'(-2.G2in"eJer)
RETURNS v$i! AS
]=O:Y]
BB;REATE TA=LE c'(-2."'a seria%# b in").
INSERT INTO c'(-2."'b) VALUES '(')#'(2)#'(6).
UP:ATE c'(-2."' SET bDbP'((((( EHERE aD]'. BBB ]' primu% arJumen"Oparame"ru
]=O:Y]
LANHUAHE sM% VOLATILE
;OST '((.
ALTER >UN;TION c'(-2.G2in"eJer) OENER TO p$s"Jres.
;O??ENT ON >UN;TION c'(-2.G2in"eJer) IS 8Gunc"ie SUL cu parame"ruWWW8.
BBape% Gunc"ie sM%
se%ec" c'(-2.G26).
BBGunc"ie ce preia un arJumen" si in"$arce $ va%$are !e "ip in"reJ
;REATE OR REPLA;E >UN;TION c'(-2.G6in"eJer)
RETURNS in"eJer AS
]=O:Y]
SELE;T ]'P*.
]=O:Y]
LANHUAHE sM% VOLATILE
;OST '((.
ALTER >UN;TION c'(-2.G6in"eJer) OENER TO p$s"Jres.
;O??ENT ON >UN;TION c'(-2.G6in"eJer) IS 8Gunc"ie SUL ce in"$arce un parame"ruWWW8.
BBape% Gunc"ie sM%
se%ec" c'(-2.G66).
BB Gunc"ie ce preia si in"$arce arJumen"e prin %is"a !e variabi%e
;REATE OR REPLA;E >UN;TION c'(-2.G9IN + in"#IN 3 in"#OUT p%us in"# OUT !iG in"#OUT
res" in")
AS
]=O:Y]
SELE;T ]'P]2# ]'B]2# ]'\2.
]=O:Y]
LANHUAHE sM% VOLATILE
;OST '((.
ALTER >UN;TION c'(-2.G9in"#in") OENER TO p$s"Jres.
;O??ENT ON >UN;TION c'(-2.G9in"#in") IS 8Gunc"ie SUL ce %ucreaCa cu parame"ri
in"rareOiesireWWW8.
BBape% Gunc"ie sM%
se%ec" A >RO? c'(-2.G9F#6).
BB preia si va%$ri imp%ici"e si in"$arce un in"reJ
;REATE OR REPLA;E >UN;TION c'(-2.G*+ in"#3 in" :E>AULT '(# C in" :E>AULT 2()
RETURNS INTEHER AS
]=O:Y]
SELE;T ]'P]2P]6.
]=O:Y]
LANHUAHE sM% VOLATILE
;OST '((.
ALTER >UN;TION c'(-2.G*in"#in"#in") OENER TO p$s"Jres.
;O??ENT ON >UN;TION c'(-2.G*in"#in"#in") IS 8Gunc"ie SUL ce %ucreaCa cu parame"ri
imp%ici"iWWW8.
BBape% Gunc"ie sM%
se%ec" c'(-2.G*F#6#').
BBape% Gunc"ie sM%
se%ec" c'(-2.G*F#5).
BBape% Gunc"ie sM%
se%ec" c'(-2.G*F).
BB Gunc"ie ce re"urneaCa prima inreJis"rare
;REATE OR REPLA;E >UN;TION c'(-2.GK)
RETURNS c'(-2."' AS
]=O:Y]
SELE;T A >RO? c'(-2."'.
]=O:Y]
LANHUAHE sM% VOLATILE
;OST '((.
ALTER >UN;TION c'(-2.GK) OENER TO p$s"Jres.
;O??ENT ON >UN;TION c'(-2.GK) IS 8Gunc"ie SUL ce re"urneaCa prima inreJis"rareWWW8.
BBape% Gunc"ie sM%
se%ec" A >RO? c'(-2.GK).
BB Gunc"ie ce in"$arce un se" !e inreJis"rari
;REATE OR REPLA;E >UN;TION c'(-2.GF)
RETURNS SETO> c'(-2."' AS
]=O:Y]
SELE;T A >RO? c'(-2."'.
]=O:Y]
LANHUAHE sM% VOLATILE
;OST '((.
ALTER >UN;TION c'(-2.GF) OENER TO p$s"Jres.
;O??ENT ON >UN;TION c'(-2.GF) IS 8Gunc"ie SUL ce re"urneaCa un se" !e
inreJis"rariWWW8.
BBape% Gunc"ie sM%
se%ec" A >RO? c'(-2.GF).
BB Gunc"ie ce preia parame"ri !e "ipuri !iGeri"eO variabi%e
;REATE OR REPLA;E >UN;TION c'(-2.G5an3e%emen"# an3e%emen")
RETURNS b$$%ean AS
]=O:Y]
SELE;T ]' < ]2.
]=O:Y]
LANHUAHE sM% VOLATILE
;OST '((.
ALTER >UN;TION c'(-2.G5an3e%emen"# an3e%emen") OENER TO p$s"Jres.
;O??ENT ON >UN;TION c'(-2.G5an3e%emen"# an3e%emen") IS 8Gunc"ie SUL ce preia !$i
parame"rii !e !iGeri"e "ipuriWWW8.
BBape% Gunc"ie
SELE;T A >RO? c'(-2.G5'# 2).
Desfurarea lucrrii:
1. e lanseaz# >5F&rmBuilder +i se c&nstruie+te inter$aa
2. e lanseaz# :&deLite +i se adaug# met&dele ce re%rezint# r#s%unsul la e'enimente
3. e c&m%ileaz# +i lin?=editeaz#
LABORATORUL NR.14
TESTE
Scop: Testarea cunotinelor
-.S-F&
Pentru monitori%area unui proces te)nolo&ic sunt utili%ate urm*toarele ta+ele" mas ,m*sur*tori- .i )ar
,parametri-* Co/urile punctelor /e m*sur* ,pctMas- sunt unice la ni0el /e mo/ul1 iar co/urile parametrilor
m*sura2i ,co/Par- sunt unice la ni0elul punctelor /e m*sur*'
:a; aGi^a"e !$ar !$u _nreJ#se%ec"a"e a%ea"$r) Dar aGi^a"e !$ar 2 _nreJ $arecare)
!ata Cra cC!UnicPar Dct
Ma;
cC!
Par
va CDera
tCr
:C!9 Dct
Ma;
cC!
Par
cC!UnicPar 9: vaMi
n
vaMaE
2'.'2.2((V (5N((N((.((2 ??('P'sU(' P' U(V 'V.9 user' ??(' P' U(' ??('P'sU(' V B(.5 P6(.K
'V.'2.2((V ((N((N((.('2 ??('P'YR?(' P' N(K '2 user2 ??(2 P' U(6 ??('P'mU(6 A B'9.* P'*.V
$e asemenea presupunem c* mai exist* 3nc* trei ta+ele mas!1 mas4 .i mas51 a06n/ structura i/entic* cu
mas'
!'Scrie2i coman/a S7L pentru crearea ta+elelor mas .i )ar ,/enumirile c6mpurilor1 tipurile /e /ate1 c)eile
primare .i externe-
4' Scrie2i coman/a S7L pentru inserarea unei 3nre&istrari 3n ta+elul mas
5' Scrie2i coman/a S7L pentru ai.area tuturor m*sur*torilor /in %iua curent* ,/in ta+elul mas-
8' Scrie2i coman/a S7L pentru 3nlocuirea 0alorii 9&+,- a c6mpului codPar, /in ta+elul mas. cu 0aloarea 9S+/-
:' Scrie2i coman/a S7L pentru .ter&erea 3nre&istr*rilor1 anterioare %ilei curente1 care nu au c6mpul 0a#
completat
;' Scrie2i coman/a S7L pentru ai.area 0alorilor me/ii pentru parametrii m*sura2i1 3n %iua anterioar*1 /e c*tre
operatorul user1
<' Scrie2i coman/a S7L pentru ai.area num*rului /e m*sur*tori1 /in %iua curent*1 pentru iecare punct /e
m*sur*
=' Scrie2i coman/a S7L pentru .ter&erea /in ta+elul mas a 0alorilor ce /ep*.esc limita maxim* ,/in )ar-
>' Scrie2i coman/a S7L care s* 3nlocuiasc* 0alorile /in c6mpul 0a# cu 0aloarea /in c6mpul 0a#Mn pentru
m*sur*torile a c*ror 0aloare este su+ limita minim*
!?' Scrie2i coman/a S7L care s* ai.e%e c6mpurile da"a1 2odUn2Par .i un nou camp /enumit n"er)re"are'
Acest nou c6mp poate con2ine" LOW pentru 0alorile situate 3n prima treime a inter0alului /at /e c6mpurile
0alMin .i 0alMax1 MEDIUM pentru 0alorile situate 3n a /oua treime a inter0alului /at /e c6mpurile 0alMin
.i 0alMax .i MAX pentru 0alorile situate 3n ultima treime a inter0alului /at /e c6mpurile 0alMin .i 0alMax
!!' Scrie2i coman/a S7L care s* a/*u&e /atele /in mas, .i mas/ 3n ta+elul mas ,o sin&ur* intero&are-
!4' Scrie2i coman/a S7L care s* a/au&e /in ta+elul mas1 3n ta+elul mas numai /atele care nu se re&asesc .i
3n ta+elul mas
!5' Scrie2i coman/a S7L care s* construiasc* /in ta+elele mas,1 mas/ .i mas1 un sin&ur ta+el a06n/
structura" /ata1 co/UnicPar1 pctMas1 co/Par1 0alM@!10alM@410alM@5 ' C6mpurile 0a#MZ3 ,3A!1415-
repre%int* 0alorile me/ii pentru iecare %i corespun%*toare iec*rui ta+el' Biecare ta+el con2ine .i /ate
,calen/aristice- /e m*surare care nu se re&*sesc 3n celelalte ta+ele
!8' Scrie2i o unc2ie care preia numele operatorului .i 3ntoarce num*rul /e 3nre&istr*ri eectuate 3n %iua
curent*
!:' Scrie2i o unc2ie care preia un inter0al /e tip /at* calen/aristic* .i 3ntoarce 0alorile /ieren2elor /intre
/ou* m*sur*tori consecuti0e ale aceluia.i parametru'
-.S- F(
CntrDo ma&a%ie se primesc role /e ca+lu' Biecare rol* are" serie_rola D unic*1 lun&ime ca+lu1
co/_ca+lu1 urni%or' Se /* urm*torul sistem /e &estiune a stocurilor /at /e ta+elele /e intr*ri,in-1
stoc,st- i /e ie iri,out- "
n,/ata /ate1 serie_rola 0arc)ar,4?-1 co/_ca+lu 0arc)ar,5?-1 lun&ime numeric1 urni%or 0arc)ar,5?-1
amp_ini 0arc)ar,!?--1
s",serie_rola 0arc)ar,4?-1 lun&ime numeric1 amp 0arc)ar,!?--1
ou",/ata /ate1 /estin 0arc)ar,5?-1 serie_rola 0arc)ar,4?-1 lun&ime numeric1 amp 0arc)ar,!?--'
Campul amp_ini repre%int* amplasamentul ini ial /in ca/rul ma&a%iei
!' S* se a/au&e c)eile primare corespun%*toareE
4' S* se a/au&e c)eile externe corespun%*toareE
5' S* se scrie intero&area ptr' a/*u&area 3n intrari i 3n stoc a unei 3nre&istr*ri ,preluarea unei role 3n
stoc-E
8' S* se scrie intero&*rile necesare pentru li0rarea a !?': m /e ca+lu cu co/ul FMG@H /in rola cu
seria FSR!H , actuali%are stoc1 a/*u&are 3n ta+elul /e ie iri- E
:' S* se scrie o intero&are pentru eliminarea /in stoc a rolelor cu mai pu in /e : m1 intrate 3n stoc /e
cel pu in un an'
S* se scrie o intero&are care s* urni%e%e un raport cu"
;' Lun&imea total* a ca+lului /in stoc pentru iecare co/ /e ca+lu 3n parte'
<' intrarile pe amplasamentul A!?(!! 3n ultimele !? %ile ,co/_ca+lu1 lun&ime-E
=' ie irileIli0r*rile /in %iua curent* cu pro/usele ce apar in urni%orului B!G ,co/_ca+lu1
lun&ime-E
>' num*rul total /e role /in stoc ce con in 3n serie_rola sec0en a /e caractere 9LNJ9 ;
!?' Stocul ,co/_ca+lu1 lun&ime- 3n urm* cu un an ,la s6r tul %ilei 1 cu un an 3n urm*- ;
,,' S* se scrie o unc ie S7L ce preia ca parametru1 co/ul ca+lului i 3ntoarce lun&imea total* a
ca+lului cu acel co/ existent* 3n stoc'
TI(T W3
Se /* urm*torul sistem /e &estiune a stocurilor /at /e ta+elele"
n,/ata /ate1 i/ serial1 serialno 0arc)ar,4?-1 co/ 0arc)ar,5?-1 urni%or 0arc)ar,5?-1 loc_ini
0arc)ar,!?--1 s",serialno 0arc)ar,4?-1 loc 0arc)ar,!?--1
ou",/ata /ate1 /estin 0arc)ar,5?-1serialno-'
Seria este unica pentru iecare pro/us'
A!' S* se a/au&e c)eile primare corespun%*toareE
A4' S* se a/au&e c)eile externe corespun%*toareE
A5' S* se scrie o intero&are pentru ter&erea /in stoc a pro/uselor care apar 3n ta+elul /e
ie iriIli0r*ri ,out-E
S* se scrie o intero&are care s* urni%e%e un raport cu"
A8' stocul curent pentru pro/usele ce con in co/ul MXR10E
A:' intrarile 3n loca ia A!?(!! 3n ultimele !? %ileE
A;' ie irileIli0r*rile /in %iua curent* cu pro/usele ce apar in urni%orului B!G E
A<' numarul pro/uselor existente 3n stoc ce con in 3n serie sec0en a /e caractere sm;
A4' stocul anterior cu un an pentru pro/usele ce con in co/ul !"WR11E
A>' pro/usele care se al* 3n stoc /e cel pu in un an'

TI(T W=
Se /au ta+elele 55# .i o)er* Ta+elul 55# con2ine e0i/en2a c*r2ilor /intrDo +i+liotec* 1 iar ta+elul o)er con2ine
e0i/en2a 3mprumuturilor .i a restituirilor' ,Data_im A /ata imprumut*rii1 Data_re A/ata return*rii D se
completea%* 3n momentul return*rii1 Durata A num*rul /e %ile pentru care a ost 3mprumutat* cartea-'
FiF CDer
CCta A9tCri E!it9ra An Ccaitat
e
CCta I!E N9:e Data_i: D9rat
a
Data_re
('B
2''69
a''#a'2 Te&nica 'VV' =ucures"i ('B
'''69
' nume' '2.(*.2((
6
5
('B
22269
a2'#a22 Te&nica 'VV* =ucures"i ('B
22269
2 nume' '2.(*.2((
9
'
('B
6*'69
A6'#a62 P$%ir$m 'V5( Iasi ('B
52269
6 nume2 22.(*.2((
*
' 26.(K.2((
K
('B
9''29
A9'#a92 E!uS$G" 'V52 =acau ('B
52269
9 nume6 26.(K.2((
K
9
('B
*''66
A*'#a*2 Eur$bi" 'VV' Timis$ara ('B
*2269
* nume' 29.(F.2((
K
2
('B
K''6'
AK'#aK2 S$%ness 'V5( Timis$ara ('B
59269
K nume9 2(.(*.2((
F
'
!'Scrie2i coman/a S7L pentru crearea ta+elului 55# ,tipurile /e c6mpuri .i c)eia primar* se 0or ale&e
conorm /atelor-'
4'Scrie2i coman/a S7L pentru crearea ta+elului o)er , tipurile /e c6mpuri .i c)eia primar* se 0or ale&e
conorm /atelor-'
5' Scrie2i coman/a S7L pentru inserarea )rme 6nre7s"rar /in ca/rul ta+elului 55#'
8' Scrie2i coman/a S7L pentru ster&erea 3nre&istr*rilor /in 55# a06n/ anul /e apari2ie 3ntre !>=! .i !>>8'
:'Scrie2i coman/a S7L pentru ai.area c*r2ilor a c*ror nume /e e/itur* 3ncepe cu litera FEH'
;'Scrie2i coman/a S7L pentru ai.area num*rului /e c*r2i 3mprumutate 3n iecare %i ,/ata1 nr_carti-'
<'Scrie2i coman/a S7L pentru ai.area c*r2ilor 3mprumutate ,cota1autori1 e/itura- inainte /e , an*/++8 .i
nere"urna"e'
='Scrie2i coman/a S7L pentru 3nlocuirea e/iturii FSo#nesH cu FEuro5"H pentru c*rtile aparute 3nainte /e
,99+ .i care nu sunt 3mprumutate'
>'Scrie2i coman/a S7L pentru .ter&erea /in ta+elul o)er a 3nre&istr*rilor cu c*r2ile re"urna"e .i ap*rute
3nainte /e ,99: '
!?' Scrie2i coman/a S7L pentru a;<area c*r2ilor care NU SUNT 3mprumutate ,ai.ea%*" cota1 autori1
e/itura- .i a c*tor e/itur* con2ine sec0en2a /e caractere K+itH'
!!' Scrie2i coman/a S7L pentru a;<area c*r2ilor ,cota1 autor1e/itur*- care NU AU BOST 3mprumutate
nicio/at* '
!4' Scrie2i coman/a S7L pentru a;<area c*r2ilor ,ai.ea%*" cota1 autori1 e/itura - care 0or tre+ui returnate
peste /ou* %ile
!5' Scrie2i coman/a S7L pentru a;<area num*rului total /e %ile c6t a ost 3mprumutat* iecare carte1
inclusi0 cele alate la cititori ,ai.ea%*" cota1 autori1 e/itura1 nr_%ile_imprumut -
!8' Consi/er6n/ num*rul /e 3nre&istr*ri pentru ta+elele 55# .i o)er e&al cu cel /in exemplul /at1 c6te
3nre&istr*ri 0a a0ea ta+elul re%ultat 3n urma comen%ii"
N: .......
TI(T W>
Pentru monitori%area unui proces te)nolo&ic sunt utili%ate urm*toarele ta+ele" "r=
,tran%i2iiIe0enimenteIopera2ii-1 s"a ,starea curent*- .i )ar ,parametri-* Valorile sunt /e tip numeric'
trG ;ta Dar
ID Data Ora CC!OD CC!Par -aIni -aFin 9;er CC!Par -a MC!9 PctMa
;
CC!Pa
r
'
2'.'2.(V (5N((N(
(
R?(' U(V (.* 'V#(9 user' ??(' P' U('
2
'V.'2.(V ((N((N(
(
R?(' N(K 'F5.9 '2 user2 ??(2 P' U(6
!'Scrie2i coman/a S7L pentru crearea celor trei ta+ele ,/enumirile c6mpurilor1 tipurile /e /ate .i c)eile
primare- '
4' Scrie2i coman/a S7L pentru inserarea primei 3nre&istrari /in ca/rul ta+elului "r='
5'Scrie2i coman/a S7L pentru ai.area me/iei 0alorii inale a parametrului 7?! pentru %iua curent*'
Ai.area se 0a reali%a /oar /ac* me/ia /ep*.e.te 0aloarea !??'
SELECT FiF3cCta HrC: FiF&CDer '#ERE(CDer3cCta IS NOT NULL)AND(FiF3cCta IS NOT NULL)1
8'Scrie2i coman/a S7L pentru sc)im+area ValIni cu ValBin pentru ca%ul 3n care ValIni L ValBin '
:' Scrie2i coman/a S7L pentru ster&erea 3nre&istr*rilor /in ta+elul "r= pentru 3nre&istr*rile ce nu au am+ele
c6mpuri cu 0alori intro/use iar co/ul parametrulului este asociat mo/ulului M??4'
;'Scrie2i coman/a S7L pentru ai.area 0alorilor maxime %ilnice .i a me/iei %ilnice pentru iecare parametru'
<'Scrie2i coman/a S7L pentru ai.area 3nre&istr*rilor /in ta+elul tr% pentru care ValIni este mai mic* /ec6t
me/ia acestora pentru %iua respecti0*
='Scrie2i coman/a S7L pentru a/*u&areaIactuali%area 0alorilor /in ta+elul st".
>' Transcrie2i 3ntrDo unc2ie1 la ni0el /e ser0er1 una /in opera2iile /e selec2ie /e mai sus'
TEST M;
Pentru &estiunea /atelor /intrDun la+orator /e anali%e i%icoDc)imice sunt utili%ate ta+elele " 5a,+uletine /e
anali%e- .i 2= ,comen%ile pentru anali%e-* Ta+elul 5a con2ine re%ultatele anali%ei' Ta+elul 2= con2ine
coman/a solicitantului /escris* prin /atele /e i/entintiicare ale solicitantului .i /enumirea anali%elor
solicitate ,a /enumirii parametrilor a c*ror 0alori 0or i /eterminate-' Unei comen%i 3i pot corespun/e mai
multe +uletine /e anali%e' $e asemenea1 uneori1 nu sunt executate toate /etermin*rile solicitate ,3n ta+elul +a1
pentru o anumit* coman/*1 nu se 0or re&*si toate /enumirile parametrilor /in ta+elul c%i -
Fa aGi^a"e !$ar !$u _nreJ#se%ec"a"e a%ea"$r) cGi aGi^a"e !$ar 2 _nreJ $arecare)
Nr_Fa !ata_Fa Den9:ire_
Dara:etr9
UM vaCare Nr_c
!a
nr_c!a ;Cicitant !ata_c!a Den9:ire_Dara:
etr9
A*=' 2'.'2.2((V am$niac mJO% (.* '* '2( ?arc$ sr%
2'.'2.2((V
c$n!uc"ivi"a"e
A6;* 'V.'2.2((V a%uminiu mJO% (.((2 2(' '5( A%Ga sr% U(6 pH
!'Scrie2i coman/a S7L pentru crearea ta+elelor 5a .i cNi ,/enumirile c6mpurilor1 tipurile /e /ate1 c)eile
primare .i externe-
4' Scrie2i coman/a S7L pentru inserarea unei 3nre&istrari 3n ta+elul 5a
5' Scrie2i coman/a S7L pentru ai.area tuturor comen%ilor primite 3n %iua curent*
8' Scrie2i coman/a S7L pentru mo/iicarea /enumirii solicitantului 9A#;a sr#- cu 9 SC A#;a SA-
:' Scrie2i coman/a S7L pentru .ter&erea 3nre&istr*rilor /in ta+elul 5a1 anterioare %ilei curente1 care nu au
c6mpul UM completat
;' Scrie2i coman/a S7L pentru ai.area 0alorilor me/ii pentru iecare parametru /eterminat' Perioa/a /e
calcul 0a i /at* /e ultimele !? %ile ,pornin/ /e la /ata curent* -
<' Scrie2i coman/a S7L pentru ai.area parametrilor ce au ost solicita2i /ar nu au ost /etermina2i
=' Scrie2i coman/a S7L pentru .ter&erea /in ta+elul 5a a 3nre&istr*rilor corespun%*toare solicitantului -Be"a
sr#-
>' Scrie2i coman/a S7L care s* ai.e%e c6mpurile nr_+a .i nr_c/a pentru ca%ul 3n care /ieren2a 3ntre
/ata_+a 2i /ata_/ca este mai mare /e o s*pt*m6n*
!?' Se /* un ta+el +a4 a06n/ o structur* i/entic* cu ta+elul +a' S* se scrie o intero&are S7L care s* a/au&e
3n +a4 toate 3nre&istr*rile /in +a care nu se re&*sesc 3n +a4'
TESTM<
Pentru monitori%area unui proces te)nolo&ic sunt utili%ate urm*toarele ta+ele" mas ,m*sur*tori- .i )ar
,parametri-* Co/urile punctelor /e m*sur* ,pctMas- sunt unice la ni0el /e mo/ul1 iar co/urile parametrilor
m*sura2i ,co/Par- sunt unice la ni0elul punctelor /e m*sur*'
:a; aGi^a"e !$ar !$u _nreJ#se%ec"a"e a%ea"$r) Dar aGi^a"e !$ar 2 _nreJ $arecare)
!ata Cra cC!UnicPar va CDeratCr :C!9 DctMa; cC!
Par
cC!UnicPar 9: vaMin vaMa
E
2'.'2.2((V (5N((N((.((2 ??('P'sU(' 'V.9 user' ??(' P' U(' ??('P'sU(' V B(.5 P6(.K
'V.'2.2((V ((N((N((.('2 ??('P'YR?(' '2 user2 ??(2 P' U(6 ??('P'mU(6 A B'9.* P'*.V
$e asemenea presupunem c* mai exist* 3nc* trei ta+ele mas!1 mas4 .i mas51 a06n/ structura i/entic* cu
mas'
!'Scrie2i coman/a S7L pentru crearea ta+elelor mas .i )ar ,/enumirile c6mpurilor1 tipurile /e /ate1 c)eile
primare .i externe-
4' Scrie2i coman/a S7L pentru inserarea unei 3nre&istrari 3n ta+elul mas
5' Scrie2i coman/a S7L pentru ai.area tuturor m*sur*torilor /in %iua curent* ,/in ta+elul mas-
8' Scrie2i coman/a S7L pentru 3nlocuirea 0alorii 9&+,- a c6mpului codPar, /in ta+elul mas. cu 0aloarea 9S+/-
:' Scrie2i coman/a S7L pentru .ter&erea 3nre&istr*rilor1 anterioare %ilei curente1 care nu au c6mpul 0a#
completat
;' Scrie2i coman/a S7L pentru ai.area 0alorilor me/ii pentru parametrii m*sura2i1 3n %iua anterioar*1 /e c*tre
operatorul user1
<' Scrie2i coman/a S7L pentru ai.area num*rului /e m*sur*tori1 /in %iua curent*1 pentru iecare punct /e
m*sur*
=' Scrie2i coman/a S7L pentru .ter&erea /in ta+elul mas a 0alorilor ce /ep*.esc limita maxim* ,/in )ar-
>' Scrie2i coman/a S7L care s* 3nlocuiasc* 0alorile /in c6mpul 0a# cu 0aloarea /in c6mpul 0a#Mn pentru
m*sur*torile a c*ror 0aloare este su+ limita minim*
!?' Scrie2i coman/a S7L care s* ai.e%e c6mpurile da"a1 2odUn2Par .i un nou camp /enumit n"er)re"are'
Acest nou c6mp poate con2ine" LOW pentru 0alorile situate 3n prima treime a inter0alului /at /e c6mpurile
0alMin .i 0alMax1 MEDIUM pentru 0alorile situate 3n a /oua treime a inter0alului /at /e c6mpurile 0alMin
.i 0alMax .i MAX pentru 0alorile situate 3n ultima treime a inter0alului /at /e c6mpurile 0alMin .i 0alMax
!!' Scrie2i coman/a S7L care s* a/*u&e /atele /in mas, .i mas/ 3n ta+elul mas ,o sin&ur* intero&are-
!4' Scrie2i coman/a S7L care s* a/au&e /in ta+elul mas1 3n ta+elul mas numai /atele care nu se re&asesc .i
3n ta+elul mas
!5' Scrie2i coman/a S7L care s* construiasc* /in ta+elele mas,1 mas/ .i mas1 un sin&ur ta+el a06n/
structura" /ata1 co/UnicPar1 pctMas1 co/Par1 0alM@!10alM@410alM@5 ' C6mpurile 0a#MZ3 ,3A!1415-
repre%int* 0alorile me/ii pentru iecare %i corespun%*toare iec*rui ta+el' Biecare ta+el con2ine .i /ate
,calen/aristice- /e m*surare care nu se re&*sesc 3n celelalte ta+ele
!8' Scrie2i o unc2ie care preia numele operatorului .i 3ntoarce num*rul /e 3nre&istr*ri eectuate 3n %iua
curent*
!:' Scrie2i o unc2ie care preia un inter0al /e tip /at* calen/aristic* .i 3ntoarce 0alorile /ieren2elor /intre
/ou* m*sur*tori consecuti0e ale aceluia.i parametru'
B0B"0OG1A20.
1.R. "&llinger7 Baze de "ate si !estiunea Tranzactiil&r7 6d. Al(astra7 :lu@7 1AA..
4'Belicia Ionescu1 (a%e /e $ate Relationale si Aplicatii1 E/' Te)nica1 (ucuresti1 4??8'
5'OOO'post&resPl'or& ,/ocumenta2ie-