Sunteți pe pagina 1din 7

Lucrarea de Laborator nr.

 Instructiuni Transact-SQL. Fisiere de comenzi (batch-uri)


 Instructiunea BEGIN-END
http://technet.microsoft.com/en-us/library/ms190487(v=sql.105).aspx
 Instructiunea IF-ELSE
http://technet.microsoft.com/en-us/library/ms182717(v=sql.105).aspx
 Instructiunea WHILE
http://technet.microsoft.com/en-us/library/ms178642(v=sql.105).aspx
 Instructiunea GOTO
http://technet.microsoft.com/en-us/library/ms180188(v=sql.105).aspx
 Instructiunea WAITFOR
http://technet.microsoft.com/en-us/library/ms187331(v=sql.105).aspx
 Instructiunea RETURN
http://technet.microsoft.com/en-us/library/s174998(v=sql.105).aspx
 Fisiere de comenzi (Batch-uri)
http://technet.microsoft.com/en-us/library/ms175502(v=sql.105).aspx
 Comanda GO
http://technet.microsoft.com/en-us/library/ms188037(v=sql.105).aspx
 Exercitiul 4.9 din R. Dollinger, „Utilizarea sistemului SQL Server”

 Operatii de inserare, actualizare, stergere


 Instructiunea INSERT
http://msdn.microsoft.com/en-us/library/ms174335(v=sql.105).aspx
 Instructiunea UPDATE:
http://msdn.microsoft.com/en-us/library/ms177523(v=sql.105).aspx
 Instructiunea DELETE
http://msdn.microsoft.com/en-us/library/ms189835(v=sql.105).aspx
1. Utilizand instructiunea „Insert:, sa se insereze date in tabelele Furnizori, Beneficiari,
Produse, Oferte
2. Utilizand intructiunea „Update”, sa se modifice tabela Furnizori, asa incat toti
furnizorii din Dej sa fie trecuti ca apartinand de orasul Cluj-Napoca
3. Utilizand intructiunea „Update”, sa se modifice tabela Produse, astfel incat toate
numele de produse sa fie scrise cu majuscule.
4. Sa se stearga, din tabela Oferte, toate ofertele de automobile.
5. Sa se stearga toate tranzactiile.

Lucrarea de Laborator nr. 4


 Fraza SQL „Select”:
https://technet.microsoft.com/en-us/library/ms189499(v=sql.105).aspx

 Set de interogari I
1. Orasele furnizorilor al caror nume incepe cu litera ‚A’.
2. Numele furnizorilor din Cluj-Napoca care vand automobile.
3. Numele beneficiarilor din Bucuresti ordonate alfabetic.
4. Numele beneficiarilor, orasele lor si produsele cerute de fiecare beneficiar.
5. Numele furnizorilor din Cluj si numele beneficiarilor din Bucuresti care au incheiat
intre ei tranzactii, numele produsului tranzactionat, cantitatea, pretul si data
tranzactiei. Ordonare dupa: numele furnizorului, apoi dupa numele beneficiarului,
apoi dupa produs, respectiv pret.

 Set de interogari II (Group by, Having)


1. Numele furnizorilor din Bucuresti si numarul de oferte de calculatoare pentru fiecare
furnizor.
2. Numele beneficiarilor din Cluj-Napoca si valoarea medie a tranzactiilor incheiate cu
furnizorii din Bucuresti pe anul 2014.
3. Numele produselor si pretul minim la care este oferit produsul respectiv, impreuna cu
furnizorul care ofera acest produs si orasul acestuia.
4. Numele furnizorului din Cluj-Napoca ce ofera cele mai multe calculatoare.
5. Numele beneficiarilor si numarul de tranzactii incheiate de fiecare beneficiar, doar
pentru beneficiarii care au incheiat cel putin trei tranzactii.

 Exercitiul 5.10: subpunctele 1. si 2.


Lucrarea de Laborator nr. 5
 Operatorii IN/NOT IN
https://msdn.microsoft.com/en-us/library/ms177682(v=sql.105).aspx
 Operatorii EXISTS/NOT EXISTS
https://msdn.microsoft.com/en-us/library/ms188336(v=sql.105).aspx
 Operatorul UNION
https://msdn.microsoft.com/en-us/library/ms180026(v=sql.105).aspx
 Operatorii INTERSECT, EXCEPT
https://msdn.microsoft.com/en-us/library/ms188055(v-sql.105).aspx
 Cuantificatorii: SOME, ANY, ALL
https://msdn.microsoft.com/en-us/library/ms175064(v=sql.105).aspx

 Exercitii (6.5):
a. Numele beneficiarilor din Bucuresti?
b. Numele beneficiarilor care sunt din Cluj sau Bucuresti?
c. Numele beneficiarilor care nu sunt din Cluj sau Bucuresti?
d. Numele produselor pentru care s-a incheiat cel putin o tranzactie?
e. Numele beneficiarilor din Bucuresti care au cumparat calculatoare?
f. Numele beneficiarilor care au cereri de calculatoare?
g. Numele beneficiarilor care au cereri de calculatoare si automobile?
h. Numele beneficiarilor care au cumparat cel putin doua tipuri de produse?
i. Numele beneficiarilor care nu au nicio cerere?
j. Numele beneficiarilor care nu au cereri de calculatoare, nici automobile?
k. Numele beneficiarilor care au cereri pentru toate tipurile de produse?
l. Numele beneficiarilor care au cereri pentru toate tipurile de calculatoare si
autoturisme?
m. Numele beneficiarilor care nu au cereri pentru toate tipurile de produse.
n. Numele beneficiarilor care au cumparat toate tipurile de produse pentru care
au cereri?
Lucrarea de Laborator nr. 6
 Folosirea clauzelor „Group By” si „Having”:

https://technet.microsoft.com/en-us/library/ms177673(v=sql.105).aspx
https://technet.microsoft.com/en-us/library/ms180199(v=sql.105).aspx

 Exercitiul 7.2 (Indrumator)


 Exercitii suplimentare:
a. Numele produsului si numarul de cereri pentru fiecare produs.
b. Numele produsului si valoarea totala a tranzactiilor incheiate pentru acel produs.
c. Numele produsului si valoarea maxima a tranzactiilor incheiate pentru fiecare
produs, precum si numele furnizorului, respectiv al beneficiarului care au
incheiat tranzactia respectiva
d. Valoarea totala a tuturor tranzactiilor din baza de date.

Lucrarea de Laborator nr. 7


 Operatii de cuplare (JOIN):
http://msdn.microsoft.com/en-us/library/ms191472(v=sql.105).aspx
 Valori NULL si operatii de cuplare externa (Capitolul 8 din indumator)
http://msdn.microsoft.com/en-us/library/ms190409.aspx
 Functia ISNULL
http://msdn.microsoft.com/en-us/library/ms184325(v=sql.105).aspx

 Exercitiul 8.3 (Indrumator)


 Exercitii suplimentare:
e. Numele furnizorilor si denumirile produselor oferite de fiecare furnizor. Pentru
furnizorii fara produse se va trece „Fara produse oferite”.
f. Numele furnizorilor si numele beneficiarilor care au incheiat tranzactii cu
furnizorii mentionati. Pentru beneficiarii fara tranzactii se va afisa „Fara
tranzactii” in loc de numele furnizorului.
g. Numele produselor si valoarea minima a ofertelor pentru fiecare produs. Pentru
produsele fara oferte se va afisa valoarea 0.
Lucrarea de Laborator nr. 8

 Functii CASE
https://msdn.microsoft.com/en-us/library/ms181765(v=sql.105).aspx
 Vederi
https://msdn.microsoft.com/en-us/library/ms187956(v=sql.105).aspx
 Exercitiul 9.3 (Indrumator) – 1., 5.
 Exercitiul 10.3 (Indrumator)
 Creati urmatoarele vederi in Microsoft SQL Server, Management Studio:
a. Numele furnizorilor si media valorilor ofertelor pentru fiecare furnizor.
b. Numele beneficiarilor din Oradea care au cumparat calculatoare, dar nu
au cumparat memory-stick-uri.
c. Numele furnizorilor, numele beneficiarilor, numele produselor, cantitatea
tranzactionata, pretul, data tranzactiei pentru furnizorii din Cluj care au
incheiat tranzactii cu beneficiarii din Bucuresti.
d. Numele beneficiarilor din Bucuresti si numarul de cereri ale fiecarui
beneficiar. Pentru beneficiarii care nu au cereri se va trece „fara cereri”.
e. Numele oraselor si nr de oferte, cereri, tranzactii din fiecare oras. Pentru
orasele fara oferte, cereri sau tranzactii se va trece 0 in coloana
corespunzatoare.

Lucrarea de Laborator nr. 9


 Proceduri stocate
http://technet.microsoft.com/en-us/library/ms187926(v=sql.105).aspx
 Exercitiul 11.6. (Indrumator)
 Creati urmatoarele proceduri stocate, in Microsoft SQL Server,
Management Studio:
a. Procedura stocata care sa ia ca parametru numele unui furnizor si sa
afiseze date privind tranzactiile incheiate de furnizorul respectiv:
numele furnizorului, numele beneficiarul cu care acesta a incheiat
tranzactia, numele produsului tranzactionat, cantitatea, pretul si data
tranzactiei.
b. Procedura stocata de inserare in tabela Oferte, cu urmatorii parametri:
nume furnizor, nume produs, cantitate, pret.
c. Procedura de actualizare (update) pe Cereri: sa se scada cu 25% pretul
pentru produsul al carui nume este dat ca parametru.
d. Procedura de actualizare (update) pe Produse: sa se scada cu 1 cantitatea
din stoc pentru produsele avand ca unitate de masura bucata si pretul mai
mare decat o anumita valoare prag, furnizata ca parameru al procedurii.
e. Procedura de stergere pe tabela Tranzactii: sa se stearga toate tranzactiile
care s-au incheiat anterior datei calendaristice furnizata ca parameru al
procedurii.
Lucrarea de Laborator nr. 10
 Triggere
http://msdn.microsoft.com/en-us/library/ms189799(v=sql.105).aspx
 Exercitiul 13.8 (Indrumator) – subpunctele 1,2
 Creati urmatoarele triggere, in Microsoft SQL Server, Management
Studio:
a.) Trigger la inserare (update) pe tabela Furnizori: sa nu se poata
insera furnizori cu varsta < 18 ani.
b.) Trigger la stergere pe tabela Oferte: sa nu se poata sterge
ofertele de calculatoare.
c.) Triggere la stergere pe tabela Tranzactii: tranzactiile sterse sa
fie trecute intr-o tabela „History_tranzactii”
d.) Trigger la actualizare(update) pe tabela Cereri: sa nu se poata
scadea pretul nici unui produs solicitat de nici un beneficiar.
Exercitii recapitulative
1. Se da baza de date avand urmatoarea structura:
Furnizori (CodF int, Nume varchar(50), Oras varchar(50))
Beneficiari(CodB int, Nume varchar(50), Oras varchar(50))
Produse(CodP int, Denumire varchar(50), Id_um int)
Unitati_masura(Id_um int, Denumire varchar(30), Prescurtare varchar(5), Descriere
varchar(500))
Oferte(CodF int, CodP int, Cantitate real, Pret money)
Cereri(CodB int, CodP int, Cantitate real, Pret money)
Tranzactii(CodF, CodB, CodP, Cantitate, Pret, Data_tranzactiei)
Cheile primare sunt subliniate. Desenati diagrama bazei de date, precizand cand apoi cheile
straine si tipurile de relatii dintre tabele.

2. Sa se rezolve urmatoarea interogare SQL, folosind fraza SELECT:


Numele beneficiarilor din Bucuresti al caror nume incepe cu litera ‘B’.

3. Sa se creeze urmatoarea vedere:


Numele furnizorilor din Cluj-Napoca, denumirile produselor oferite de fiecare furnizor,
denumirea unitatii de masura pentru fiecare produs, cantitatea si pretul fiecarei oferte.

4. Sa se creeze o procedura stocata, avand ca parametru orasul, care sa returneze numarul


produselor solicitate(cerute) de beneficiarii din orasul respectiv. Pentru orasele fara cereri se va
afisa valoarea 0.

5. Sa se creeze un trigger pe tabela Tranzactii, astfel incat sa nu se poata incheia tranzactii intre
furnizorii din Oradea si beneficiarii din Bacau ulterior datei de 15 ianuarie 2016.

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