You are on page 1of 68

Ministerul Educaiei, Tineretului i Sportului al Republicii Moldova Universitatea de Stat A.

Russo din Bli

OCTAVIAN COZNIUC

Culegere de probleme i exemple la

BAZE DE DATE

Bli, 2006

CZU: 004.655.3

Discutat la edina Catedrei Electronic i Informatic Procesul verbal nr. 6 din 02.06.2006

Discutat la edina Consiliului Facultii Tehnic, Fizic, Matematic i Informatic Procesul verbal nr. 6 din 22.06.2006

Autor: asistent universitar, magistru Octavian COZNIUC Ed. SRL PrimexCom

Recenzeni: Nona DEINEGO Gheorghe CURBET

Universiatea de Stat Alecu Russo, Octavian Cozniuc, 2006


2

CUPRINSUL PREFA..................................................................................4 DESCRIEREA BAZEI DE DATE MARKETING...................5 Tabelul Oficii.................................................................5 Tabelul Companii...........................................................6 Tabelul Angajai.............................................................6 Tabelul Produse..............................................................7 Tabelul Tranzacii..........................................................7 PROBLEME..............................................................................8 Selectarea datelor...........................................................8 Actualizarea datelor.....................................................18 Parametrizarea interogrilor.........................................21 LIMBAJUL SQL.....................................................................22 Introducere...................................................................22 Instruciunea de selecie...............................................22 Instruciunea de tergere..............................................28 Instruciunea de adugare............................................. 29 Instruciunea de modificare..........................................30 Instruciunea de selecie inclus...................................31 Parametrizarea interogrilor.........................................32 RSPUNSURI......................................................................... 34 ANEX.................................................................................... 63 BIBLIOGRAFIE......................................................................68

PREFA O dat cu evoluia societii umane, informaia a crescut in dimensiune. In prezent se pune problema, nu a stocrii datelor, ci a regsirii informaiei necesare i cu ea rapiditatea obinerii rezultatului dorit. Rezolvarea acestei probleme este determinat de: folosirea unui program specializat in prelucrarea informaiei a unei baze de date concrete, care este elaborat de un programator; cunoaterea limbajului SQL de ctre utilizator. Programele destinate prelucrrii datelor unei baze de date concrete sunt relativ scumpe i, prin urmare, nu orice utilizator i poate permite aa ceva. Din cele expuse se poate afirma, c cunoaterea limbajului SQL este cea mai optimal soluie a problemei menionate. Problemele prezentate in lucrare pot fi rezolvate in orice sistem de gestiune a bazelor de date (SGBD) actual. Problemele sunt orientate spre baza de date Marketing, care este o baz de date model i conine informaii despre: produsele, clienii, oficiile, angajaii i vnzrile unei firme comerciale. Lucrarea se adreseaz cititorilor care sunt oarecum familiarizai cu problematica programrii calculatoarelor i cu noiunile de baz ale informaticii teoretice. Ea poate servi ca material didactic liceitilor, studenilor i profesorilor specializai n informatic, economie, baze de date, . a. Autorul mulumete colegilor de catedr pentru observaiile i sugestiile competente, care au contribuit la realizarea acestei lucrri.

DESCRIEREA BAZEI DE DATE MARKETING Baza de date Marketing este o baz de date ce conine informaii despre oficiile, produsele, angajaii, clienii i tranzaciile de vnzare a unei intreprinderi. Pentru a stoca toat informaia sus numit n calculator, se va folosi modelul relaional de reprezentare a datelor. Acest model pstreaz datele n form de unu sau mai multe tabele cu relaii dintre ele. Tabelele bazei de date Marketing sunt in a V-a form normal i n figura 1 este prezentat modelul relaional al bazei de date Marketing.

Fig. 1. Modelul relaional al BD Marketing Din figura 1 se vede, c baza de date este alctuit din 5 tabele cu titlurile: Oficii, Angajati, Tranzactii, Companii i Produse. Tabelul Oficii Tabelul Oficii conine informaii despre toate oficiile firmei i este alctuit din urmtoarele 4 cmpuri: Cod-oficiu de tip Text cu dimensiunea 2 simboluri i este cheie primar; Localitatea de tip Text cu dimensiunea 15 simboluri;

Regiunea de tip Text cu dimensiunea 6 simboluri; Codul managerului de tip Text cu dimensiunea 3 simboluri i este cheie extern. Coninutul entitii Oficii este prezentat in anex. Tabelul Companii Tabelul Companii conine informaii despre toate companiile ce colaboreaz cu firma respectiv i este alctuit din urmtoarele 4 cmpuri: Cod-companie de tip Text cu dimensiunea 2 simboluri i este cheie primar; Compania de tip Text cu dimensiunea 13 simboluri; Reprezentantul companie de tip Text cu dimensiunea 3 simboluri i este cheie extern; Datoria de tip Currency cu formatul euro. Coninutul entitii Companii este prezentat in anex. Tabelul Angajai Tabelul Angajati conine informaii despre toi angajaii firmei respective i este alctuit din urmtoarele 8 campuri: Cod-angajat de tip Text cu dimensiunea 3 simboluri i este cheie primar; Nume de tip Text cu dimensiunea 15 simboluri; Prenume de tip Text cu dimensiunea 15 simboluri; Virsta de tip Number cu formatul numr ntreg; Functia de tip Text cu dimensiunea 20 simboluri; Codul oficiului de tip Text cu dimensiunea 2 simboluri i este cheie extern;
6

Data angajarii de tip Date/Time cu formatul dat scurt; Suma planificata de tip Currency cu formatul euro. Coninutul entitii Angajai este prezentat n anex. Tabelul Produse Tabelul Produse conine informaii despre produsele oferite de firm dat i este alctuit din urmtoarele 4 campuri: Cod-produs de tip AutoNumber i este cheie primar; Descriere de tip Text cu dimensiunea 40 simboluri; Pret de tip Currency cu formatul euro; Exist de tip Yes/No. Coninutul entitii Produse este prezentat in anex. Tabelul Tranzacii Tabelul Tranzactii conine informaii despre toate tranzaciile realizate n cadrul firmei respective i este alctuit din urmtoarele 5 campuri: Data comenzii de tip Date/Time cu formatul dat scurt; Codul clientului de tip Text cu dimensiunea 2 simboluri i este cheie extern; Codul vinzatorului de tip Text cu dimensiunea 3 simboluri i este cheie extern; Codul produsului de tip Number cu formatul numr ntreg i este cheie extern; Cantitatea de tip Number cu formatul numr intreg. Coninutul entitii Tranzacii este prezentat in anex
7

PROBLEME Selectarea datelor 1. Proiectai o interogare, ce ar afia denumirea tuturor companiilor. 2. Proiectai o interogare, ce ar afia localitatea i regiunea tuturor oficiilor. 3. Proiectai o interogare, ce ar afia coninutul tuturor campurilor tabelului oficii. 4. Proiectai o interogare, ce ar afia coninutul tuturor campurilor tabelului produse. 5. Proiectai o interogare, ce ar afia: codul, numele, prenumele i vrsta tuturor angajailor. 6. Proiectai o interogare, ce ar afia coninutul tuturor campurilor tabelului companii. 7. Proiectai o interogare, ce ar afia: codul, numele, prenumele tuturor angajailor. 8. Proiectai o interogare, ce ar afia codul i denumirea tuturor companiilor. 9. Proiectai o interogare, ce ar afia: codul, numele, prenumele, funcia i vrsta tuturor angajailor. 10. Proiectai o interogare, ce ar afia coninutul cmpurilor localitatea i regiu nea cu titlurile respective: Localitatea oficiului i Regiunea oficiului.
8

11. Proiectai o interogare, ce ar afia: codul, numele, prenumele tuturor angajailor cu titlurile cmpurilor: Cod personal pentru codul angajatului, Numele angajatului pentru numele angajatului i Prenumele angajatului pentru prenumele angajatului. 12. Proiectai o interogare, ce ar afia denumirea companiilor i datoria lor n ordinea alfabetic dup denumirea companiei. 13. Proiectai o interogare, ce ar afia: numele, prenumele i funcia angajailor n ordinea alfabetic dup nume i prenume. 14. Proiectai o interogare, ce ar afia denumirea companiilor i datoria lor n ordinea descresctoare dup datorie. 15. Proiectai o interogare, ce ar afia: numele, prenumele, funcia celor mai tineri 10 angajai. 16. Proiectai o interogare, ce ar afia: numele, prenumele, funcia celor mai vrstnici 10 angajai. 17. Proiectai o interogare, ce ar afia: numele, prenumele, funcia a 10 angajai cu o vechime mai mare in munc. 18. Proiectai o interogare, ce ar afia denumirea companiei cu cea mai mare datorie. Proiectai o interogare, ce ar afia: numele, prenumele, codul personal i funcia celui mai tnr angajat.

19. Proiectai o interogare, ce ar afia descrierea i preul tuturor produselor ce exist la depozit. 20. Proiectai o interogare, ce ar afia localitile oficiilor regiunii de nord. 21. Proiectai o interogare, ce ar afia localitile oficiilor regiunii de sud. 22. Proiectai o interogare, ce ar afia localitile oficiilor regiunii de centru. 23. Proiectai o interogare, ce ar afia denumirea companiilor ce au datorii mai mari ca 10 000 euro. 24. Proiectai o interogare, ce ar afia denumirea companiilor ce au datorii mai mici ca 10 000 euro. 25. Proiectai o interogare, ce ar afia denumirea companiilor ce au datorii nu mai mici ca 10 000 euro. 26. Proiectai o interogare, ce ar afia denumirea companiilor ce au datorii nu mai mari ca 10 000 euro. 27. Proiectai o interogare, ce ar afia denumirea companiilor ce nu au datorii. 28. Proiectai o interogare, ce ar afia: numele, prenumele, funcia angajailor, crora nu li s-a planificat nimic. 29. Proiectai o interogare, ce ar afia: numele, prenumele, vrsta i funcia angajailor, crora li sa planificat mai mult de 10 000 euro.

10

30. Proiectai o interogare, ce ar afia localitile oficiilor regiunii de nord sau sud. 31. Proiectai o interogare, ce ar afia localitile oficiilor regiunii de nord sau centru. 32. Proiectai o interogare, ce ar afia localitile oficiilor regiunii de centru sau sud. 33. Proiectai o interogare, ce ar afia: numele, prenumele angajailor a cror nume incepe cu litera v. 34. Proiectai o interogare, ce ar afia: numele, prenumele angajailor a cror nume se sfrete cu litera a. 35. Proiectai o interogare, ce ar afia: numele, prenumele angajailor a cror nume conine litera o. 36. Proiectai o interogare, ce ar afia: numele, prenumele i vrsta celui mai tnr angajat , a crui nume incepe cu litera g. 37. Proiectai o interogare, ce ar afia: numele, prenumele, funcia angajailor, a cror nume incepe cu literele gr n ordinea alfabetic dup nume i prenume. 38. Proiectai o interogare, ce ar afia numrul de angajai. 39. Proiectai o interogare, ce ar afia numrul de companii, ce nu au datorii. Proiectai o interogare, ce ar afia numrul de companii ce au datorii mai mici ca 10 000 euro.
11

40. Proiectai o interogare, ce ar afia numrul de contabili. 41. Proiectai o interogare, ce ar afia numrul de manageri. 42. Proiectai o interogare, ce ar afia numrul de reprezentani. 43. Proiectai o interogare, ce ar afia suma datoriilor tuturor companiilor. 44. Proiectai o interogare, ce ar afia descrierea celui mai scump produs. 45. Proiectai o interogare, ce ar afia descrierea celui mai ieftin produs. 46. Proiectai o interogare, ce ar afia descrierea celui mai scump produs, ce exist la depozit. 47. Proiectai o interogare, ce ar afia descrierea celui mai ieftin produs, ce exista la depozit. 48. Proiectai o interogare, ce ar afia descrierea celui mai scump produs, ce nu exist la depozit. 49. Proiectai o interogare, ce ar afia descrierea celui mai ieftin produs, ce nu exist la depozit. 50. Proiectai o interogare, ce ar afia regiunea i numrul de oficii in fiecare regiune.

12

53. Proiectai o interogare, ce ar afia: numele, prenumele i funcia angajatului, cruia i s-a planificat cel mai mult. 54. Proiectai o interogare, ce ar afia: numele, prenumele i funcia angajatului, cruia i s-a planificat cel mai puin. 55. Proiectai o interogare, ce ar afia valoarea medie a datoriilor companiilor. 56. Proiectai o interogare, ce ar afia valoarea medie a datorilor companiilor, ce au datorii mai mari ca 10 000 euro. 57. Proiectai o interogare, ce ar afia numrul de angajai, ce sunt mai in varst de 30 ani. 58. Proiectai o interogare, ce ar afia numrul de angajai ce sunt mai n vrst de 40 ani sau mai tineri de 25 ani. 59. Proiectai o interogare, ce ar afia: numele, prenumele, funcia i vrsta angajailor, ce sunt mai n vrst de 25 ani i mai tineri de 35 ani. 60. Proiectai o interogare, ce ar afia: numele, prenumele, funcia, data angajrii managerului cu cea mai mare sum planificat. 61. Proiectai o interogare, ce ar afia: numele, prenumele, funcia, data angajrii reprezentantului unei companii cu cea mai mic sum planificat. 62. Proiectai o interogare, ce ar afia regiunea cu cele mai multe oficii.
13

63. Proiectai o interogare, ce ar afia regiunea cu cele mai puine oficii. 64. Proiectai o interogare, ce ar afia: compania, numele i prenumele reprezentantului companiei, in ordinea alfabetic dup nume i prenume. 65. Proiectai o interogare, ce ar afia: compania, numele i prenumele angajailor, ce reprezint compania i sunt mai tineri de 30 de ani i mai in vrst de 20 ani. 66. Proiectai o interogare, ce ar afia: numele, prenumele angajailor i localitatea unde activeaz in ordinea alfabetic dup nume i prenume. 67. Proiectai o interogare, ce ar afia: numele, prenumele, funcia, i localitatea angajailor ce sunt manageri intr-un oficiu in ordinea invers alfabetic dup nume i prenume. 68. Proiectai o interogare, ce ar afia descrierea produselor, ce au fost vndute precum i cantitatea lor. 69. Proiectai o interogare, ce ar afia: numele, prenumele i funcia reprezentanilor unei singuri companii, in ordinea alfabetic a companiilor. 70. Proiectai o interogare, ce ar afia: numele, prenumele i suma planificat a angajailor, care sunt manageri intr-o singur localitate, n ordinea alfabetic dup nume i prenume. 71. Proiectai o interogare, ce ar afia ziua, cand s-au vandut produse la o sum minimal.
14

72. Proiectai o interogare, ce ar afia ziua, cand s-a vandut cea mai mic cantitate de produse. 73. Proiectai o interogare, ce ar afia ziua, cand s-au vandut cea mai mare cantitate de produse. 74. Proiectai o interogare, ce ar afia ziua, cand s-au vndut produse de o sum maximal. 75. Proiectai o interogare, ce ar afia: numele, prenumele, funcia, localitatea angajatului, care a incheiat contractul de cea mai mare sum. 76. Proiectai o interogare, ce ar afia: numele, prenumele, funcia, localitatea angajatului, care a incheiat contractul de cea mai mic sum. 77. Proiectai o interogare, ce ar afia: numele, prenumele, data angajrii, funcia angajailor de la Soroca in ordinea alfabetic dup nume i prenume. 78. Proiectai o interogare, ce ar afia: numele, prenumele, data angajrii, funcia i regiunea angajatului, care a incheiat contractul de cea mai mic sum. 79. Proiectai o interogare, ce ar afia compania, ce a incheiat contractul de cea mai mare sum, precum i numele, prenumele reprezentatului ei. 80. Proiectai o interogare, ce ar afia compania ce a incheiat contractul de cea mai mic sum, precum i numele, prenumele reprezentatului ei.

15

81. Proiectai o interogare, ce ar afia: numele, prenumele, vrsta celui mai tnr reprezentant a unei companii i denumirea companii pe care o reprezint. 82. Proiectai o interogare, ce ar afia: numele, prenumele, varsta celui mai varstnic reprezentant a unei companii i denumirea companii pe care o reprezint. 83. Proiectai o interogare, ce ar afia data realizrii fiecrei tranzacii diferite, precum i suma de bani acumulat in rezultatul tranzaciei n ordinea cresctoare a datei. 84. Proiectai o interogare, ce ar afia denumirea companiilor, ce particip la tranzacii i numrul de tranzacii realizate de companie. 85. Proiectai o interogare, ce ar afia: numele, prenumele i suma de bani acumulat de angajat in ordinea alfabetic dup nume i prenume. 86. Proiectai o interogare, ce ar afia: numele, prenumele, funcia i varsta angajatului care a acumulat cea mai mare sum de bani. 87. Proiectai o interogare, ce ar afia: numele, prenumele, funcia i varsta angajatului care a acumulat cea mai mic sum de bani. 88. Proiectai o interogare, ce ar afia descrierea celui mai scump produs cumprat de compania Avon. Proiectai o interogare, ce ar afia descrierea celui mai scump produs cumprat de compania Petrom i care exist la depozit.

16

90. Proiectai o interogare, ce ar afia denumirea companiei, care a incheiat cel mai mare numr de contracte. 91. Proiectai o interogare, ce ar afia denumirea companiei, ce a incheiat cel mai mic numr de contracte. 92. Proiectai o interogare, ce ar afia denumirea companiei, ce nu a incheiat nici un contract. 93. Proiectai o interogare, ce ar afia: numele prenumele, suma planificat, suma acumulat a angajailor, care au realizat tranzacii, n ordinea alfabetic dup nume i prenume. 94. Proiectai o interogare, ce ar afia: numele, prenumele, diferena dintre suma planificat i suma acumulat a angajailor, care au realizat tranzacii, n ordinea alfabetic dup nume i prenume. 95. Proiectai o interogare ce ar afia: numele, prenumele, funcia angajailor, care au acumulat mai mult decat li s-a planificat, n ordinea alfabetic dup nume i prenume. 96. Proiectai o interogare, ce ar afia: numele, prenumele, funcia angajailor, care au acumulat mai puin decat li s-a planificat n ordinea alfabetic dup nume i prenume. 97. Proiectai o interogare, ce ar afia: numele, prenumele, funcia angajailor care au acumulat ct li s-a planificat, n ordinea alfabetic dup nume i prenume.

17

98. Proiectai o interogare, ce ar afia localitatea oficiului, angajaii cruia au acumulat cea mai mare sum de bani. 99. Proiectai o interogare, ce ar afia localitatea oficiului, angajaii cruia au acumulat cea mai mic sum de bani. 100. Proiectai o interogare, ce ar afia numele i prenumele managerului oficiului, angajaii cruia au acumulat cea mai mare sum de bani. 101. Proiectai o interogare, ce ar afia numele i prenumele managerului oficiului, angajaii cruia au acumulat cea mai mic sum de bani. Actualizarea datelor 102. Proiectai o interogare, ce ar introduce in baza de date un angajat nou cu numele Ciobanu i prenumele Vasile. 103. Proiectai o interogare, ce ar introduce in baza de date o companie nou cu denumirea Dumbrava Nord, ce are datorii n sum de 3 000 euro. 104. Proiectai o interogare, ce ar introduce in baza de date un produs nou, ce exist la depozit cu descrierea telefon Nokia 32, cu preul de 105 euro. 105. Proiectai o interogare, ce ar anula datoria companiei Astra. 106. Proiectai o interogare, ce ar mri suma acumulat a angajatului Grosu Leonid cu 1 000 euro.
18

107. Proiectai o interogare, ce ar mri suma acumulat a angajatului Nanu Vasile cu 30%. 108. Proiectai o interogare, ce ar aduga o tranzacie nou, realizat de Cozma Ion cu compania Zorile, ce a cumprat 10 monitoare LG 17. 109. Proiectai o interogare, ce ar terge din baza de date Marketing angajatul Vrabie Ion. 110. Proiectai o interogare, ce ar terge din baza de date Marketing angajatul, care reprezint compania Zorile. 111. Proiectai o interogare, ce ar modifica numele angajatului Mutu Livia in Grozavu. 112. Proiectai o interogare, ce ar modifica denumirea companiei Astra in BloomCom, iar codul in BC. 113. Proiectai o interogare, ce ar terge toate tranzaciile realizate pe data de 02.02.2005. 114. Proiectai o interogare, ce ar terge toate tranzaciile cu compania Basarabia. 115. Proiectai o interogare, ce ar modifica varsta tuturor angajailor prin mrirea cu un an. 116. Proiectai o interogare, ce ar terge din baza de date angajaii, a cror nume coincide cu numele altor angajai. 117. Proiectai o interogare, ce ar modifica funcia angajatului Surdu Mihaiela in manager.

19

107. Proiectai o interogare, ce ar modifica denumirea companiei Bizpro in Bussines Inc. 108. Proiectai o interogare, ce ar aduga un oficiu nou n Otaci a regiunii de nord a crui manager va fi seful. 109. Proiectai o interogare, ce ar terge din baza de date toi angajaii de la Orhei. 110. Proiectai o interogare, ce ar crea un tabel nou cu numele Nord, alctuit din cmpurile: Cod-angajat, Nume, Prenume i ar conine lista angajailor din regiunea de nord a rii. 111. Proiectai o interogare, ce ar crea un tabel nou cu numele Sud, alctuit din cmpurile: Cod-angajat, Nume, Prenume i ar conine lista angajailor din regiunea de sud a rii. 112. Proiectai o interogare, ce ar crea un tabel nou cu numele Angajatii de nord, alctuit din cmpur ile: Cod-angajat, Nume, Prenume Suma planificata i ar conine lista angajailor din regiunea de nord a rii. 113. Proiectai o interogare, ce ar crea un tabel nou cu numele Marfa, alctuit din cmpurile: Cod-produs, Descriere, Pret i ar conine lista produselor ce exist la depozit. 114. Proiectai o interogare, ce ar terge din baza de date toi angajaii de la Soroca. 115. Proiectai o interogare, ce ar terge toate tranzaciile realizate pe data de 22.08.2005.

20

Parametrizarea interogrilor 127. Proiectai o interogare cu un parametru, ce ar afia codul, numele i prenumele angajailor, iar campul nume se va compara dac coincide cu parametrul interogrii. 128. Proiectai o interogare cu doi parametri, ce ar afia codul, numele i prenumele angajailor, iar cmpul nume se va compara dac coincide cu primul parametru, iar prenume cu al doilea parametru. 129. Proiectai o interogare cu un parametru, ce ar afia codul, descrierea i preul produselor, ce sunt mai ieftine ca parametrul introdus de utilizator. 130. Proiectai o interogare cu un parametru, ce ar afia codul, descrierea i preul produselor, ce sunt mai scumpe ca parametrul introdus de utilizator. 131. Proiectai o interogare cu un parametru, ce ar afia codul, descrierea i preul produselor, ce sunt mai ieftine ca parametrul introdus de utilizator i exist la depozit. 132. Proiectai o interogare cu un parametru, ce ar afia codul, descrierea i preul produselor, ce sunt mai scumpe ca parametrul introdus de utilizator i nu exist la depozit. 133. Proiectai o interogare cu un parametru, ce ar terge din baza de date angajatul cu numele indicat de utilizator in parametrul interogrii. 134. Proiectai o interogare cu un parametru, ce ar terge din baza de date produsul cu preul indicat de utilizator n parametrul interogrii.
21

LIMBAJUL SQL Introducere Istoria SQL (Structured Query Language) incepe in laboratoarele IBM din San Jose. Iniial a fost dezvoltat pentru produsul DB 2 al IBM. SQL este un limbaj procedural fiind diferit de celelalte limbajele procedurale, ce au fost create in acea perioad. Limbajul de manipulare a datelor (LMD) SQL are o sintax puin diferit de la un sistem de gestiune a bazelor de date (SGBD) la altul. Pentru rezolvarea problemelor din capitolul precedent se va folosi limbajul standard SQL. Standard SQL nu face diferena dintre majuscule i minuscule la scrierea unui cod de instruciune. Cele mai des folosite instruciuni in standard SQL sunt: SELECT, DELETE, INSERT, UPDATE. La scrierea unui cod SQL aceste instruciuni folosesc diferite clauze cum ar fi: TOP, FROM, AS, ORDER BY, GROUP BY, WHERE, SET, INTO, VALUES, etc. Instruciunile i clauzele pot avea un parametru, ce se indic imediat dup denumirea clauzei. In calitate de parametru a unei clauze se poate folosi un numr, un text, un nume de camp, o list de cmpuri, diferite simboluri speciale, operaii aritmetice, expresii logice, operatori logici, funcii. Instruciunea de selecie Instruciunea SELECT permite regsirea i afiarea datelor din BD i are urmtoarea sintax: SELECT list_campuri FROM list_tabele Parametrul list_cmpuri ne permite s alegem cmpurile, coninutul crora se va afia la ecran, precum i ordinea campurilor. Numele cmpurilor se separ prin virgul i se indic exact aa cum este n tabel.
22

De exemplu: 1. SELECT localitatea, regiunea 2. SELECT nume, prenume, functia 3. SELECT compania Dac numele cmpului este alctuit din dou sau mai multe cuvinte atunci numele cmpului se indic ntre paranteze ptrate. Nu este greeal dac se indic i numele format dintr un singur cuvnt ntre paranteze ptrate. De exemplu: 1. SELECT compania, [reprezentantul companiei] 2. SELECT nume, [suma planificata], [data angajarii] 3. SELECT [nume], [prenume], [suma planificata] Dac este nevoie de a afia toate campurile unui tabel atunci parametrul list_cmpuri este nlocuit printr-un simbol special numit asterisc (*) sau cuvantul cheie ALL. De exemplu: 1. SELECT * 2. SELECT All Parametrul list_cmpuri mai poate conine i operaii aritmetice dintre cmpurile numerice i numere folosind parantezele rotunde i operatorii: adunarea +, scderea -, nmulirea *, mprirea /, ridicarea la putere ^. Valorile campurilor textuale pot fi concatenate cu un oarecare text, notand operaia de concatenare prin simbolul +. Constantele textuale in SQL sant reprezentate intre simbolurile apostrof: , iar constantele calendaristice intre simbolurile # #. Valoarea logic se scrie TRUE dac are valoarea adevrat i FALSE dac are valoarea fals. Pentru numerele reale partea ntreag se separ de cea zecimal prin punct. De exemplu: 1. SELECT nume, prenume, [suma planificata]-100 2. SELECT nume, prenume, ([suma planificata]+100)*2 3. SELECT nume + A 4. SELECT nume, prenume, [suma planificata]*0.5
23

Parametrul instruciunii SELECT mai poate conine i o funcie statistic cum ar fi: MAX() - valoarea maximal, MIN() - valoarea minimal, AVG() - valoarea medie, COUNT() numrul total, SUM() - suma. Intre parantezele rotunde a funciei se indic numele cmpului. De exemplu: 1. SELECT MAX(virsta) 2. SELECT MIN([suma planificata]) Parametrul list_tabele a clauzei FROM se folosete pentru a indica numele tabelului, cmpurile cruia sunt utilizate n instruciunea SELECT. De exemplu: 1. SELECT nume, prenume FROM angajati 2. SELECT * FROM oficii 3. SELECT nume, prenume, [reprezentantul companiei] FROM angajati, companii Modificarea titlului unui camp se face cu ajutorul clauzei AS, ce are sintaxa: SELECT nume-camp1 AS titlul-camp1, nume-camp2 AS titlul-camp2, , nume-campN AS titlul-campN FROM list_tabele Dac titlul cmpului este alctuit din dou sau mai multe cuvinte atunci se indic ntre paranteze ptrate. De exemplu: 1. SELECT nume AS [numele angajatului], prenume AS [prenumele angajatului] FROM angajati 2. SELECT min(virsta) AS [virsta celui mai tinar angajat] FROM angajati Dac este nevoie de a afia un numr limitat de nregistrri, atunci se utilizeaz clauza TOP, ce are urmtoarea sintax:
24

SELECT TOP numr list_campuri FROM list_tabele Parametrul numr a clauzei TOP indic cte nregistrri vor fi afiate. De exemplu: 1. SELECT TOP 10 nume, prenume FROM angajati 2. SELECT TOP 5 localitatea AS [localitati 5] FROM oficii Pentru afiarea datelor dintr-un tabel intr-o anumit ordine este nevoie de a utiliza clauza ORDER BY, care are urmtoarea sintax: SELECT list_cmpuri FROM list_tabele ORDER BY list_cmpuri Parametrul list_cmpuri a clauzei ORDER BY indic dup care cmp se vor ordona datele. Dac la sfritul unui camp este cuvantul cheie DESC, atunci sortarea se va face descresctor sau n ordinea invers alfabetic, n caz contrar sortarea este n ordinea alfabetic sau cresctor. De exemplu: 1. SELECT nume, prenume FROM angajati ORDER BY nume 2. SELECT localitatea, regiunea FROM oficii ORDER BY localitatea DESC, regiunea Deseori la folosirea funciilor statistice este nevoie de a grupa datele dup unu sau mai multe campuri i pentru aceasta n SQL se folosete clauza GROUP BY cu urmtoarea sintax: SELECT list_cmpuri FROM list_tabele GROUP BY list_cmpuri

25

Parametrul list_cmpuri a clauzei GROUP BY indic dup care cmp se va realiza grupare datelor. De exemplu: 1. SELECT nume, max(virsta) AS virsta FROM angajati GROUP BY nume 2. SELECT COUNT(localitatea) AS [numarul de oficii] FROM oficii GROUP BY regiunea Cel mai des In SQL se folosete afiarea datelor cu anumite condiii. Clauza WHERE a instruciunii SELECT permite afiarea datelor n dependen de condiii i are urmtoarea sintax: SELECT list_cmpuri FROM list_tabele WHERE condiii Parametrul condiii a clauzei WHERE reprezint o expresie ce compar dou valori, dou cmpuri, un cmp cu o valoare folosind unul din operatorii de comparare: < mai mic, > mai mare, <= mai mic sau egal, >= mai mare sau egal, = egal, <> diferit. De exemplu: 1. SELECT nume, prenume FROM angajati WHERE [suma planificata]>10000 2. SELECT localitatea, regiunea FROM oficii WHERE regiunea=nord Dac condiia este compus, atunci ntre condiii se folosesc operatorii logici: AND i; OR sau; NOT nu. De exemplu: 1. SELECT localitatea, regiunea FROM oficii WHERE NOT regiunea=nord
26

2.

SELECT nume, prenume FROM angajati WHERE [suma planificata]>10000 AND [suma planificata]<=150000 Dac este nevoie de a afia careva date, valorile cmpurilor crora sunt texte i conin unu sau mai multe simboluri consecutive, atunci se folosete funcia textual LIKE cu urmtoarea sintax: SELECT list_cmpuri FROM list_tabele WHERE nume_camp-textual LIKE text dac valoarea campului coincide cu textul text, sau WHERE nume_camp-textual LIKE text% dac valoarea campului incepe cu textul text, sau WHERE nume_camp-textual LIKE %text dac valoarea campului se termin cu textul text, sau WHERE nume_camp-textual LIKE %text% dac valoarea campului conine textul text. De exemplu: 1. SELECT nume, prenume FROM angajati WHERE nume LIKE gr% 2. SELECT localitatea, regiunea FROM oficii WHERE localitatea LIKE C% La afiarea datelor din mai multe tabele trebuie de stabilit legtura dintre tabele. Aceasta se realizeaz folosind clauza WHERE cu urmtoarea sintax: SELECT list_cmpuri FROM list_tabele WHERE nume_tabel1.nume_camp1= nume_tabel2.nume_camp2 AND condiii De exemplu:
27

1.

SELECT nume, prenume, localitatea FROM angajati, oficii WHERE angajati.[codul oficiului]=oficii.[cod-oficiu] 2. SELECT nume, prenume, localitatea, regiunea FROM oficii, angajati WHERE angajati.[codul oficiului]=oficii.[cod-oficiu] AND regiunea=nord Dac este necesar de a plasa datele selectate de instruciunea SELECT ntr-un tabel nou, care trebuie creat atunci se folosete clauza INTO cu urmtoarea sintax: SELECT list_cmpuri FROM list_tabele INTO nume_tabel_nou Parametrul nume_tabel_nou a clauzei INTO indic numele tabelului care se va crea, folosind datele din campurile indicate in instruciunea SELECT. Din cele expuse mai sus putem stabili formatul general al instruciunii SELECT. Se vor indica intre paranteze figurate clauzele opionale: SELECT {TOP numr}list_cmpuri {AS titlul_camp} FROM list_tabele {INTO nume_tabel_nou} {WHERE condiie} {GROUP BY list_cmpuri} {ORDER BY list_cmpuri} Instruciunea de tergere Instruciunea DELETE permite tergerea datelor din BD i are urmtoarea sintax: DELETE FROM nume_tabel

28

Parametrul nume_tabel a clauzei FROM din instruciunea DELETE indic din care tabel se vor terge toate datele. De exemplu: 1. DELETE FROM angajati 2. DELETE FROM oficii Dac este nevoie de a terge numai unele nregistrri, atunci se va utiliza clauza WHERE, ce are urmtoarea sintax: DELETE FROM nume_tabel WHERE condiie Parametrul condiie a clauzei WHERE are aceiai structur ca i cel din clauza WHERE a instruciunii SELECT. La executarea acestei interogri din BD se vor terge toate nregistrrile, ce satisfac condiia din clauza WHERE. Deci formatul general al instruciunii DELETE este: DELETE FROM nume_tabel {WHERE condiie} Clauza WHERE este opional in instruciunea DELETE, de aceia ea se indic intre paranteze figurate. Instruciunea de adugare Instruciunea INSERT permite adugarea datelor in BD i are urmtoarea sintax: INSERT INTO nume_tabel (list_campuri) VALUES(list_valori) Parametrul nume_tabel a clauzei INTO determin tabelul in care se va face adugarea. Intre paranteze rotunde se indic parametrul list_cmpuri, care reprez int numele campurilor tabelului indicat la inceput . Parametrul list_valori a clauzei VALUES se folosete pentru a indica valorile fiecrui cmp n nregistrarea nou. In acest parametru trebuie respectate
29

regulile de scriere a valorilor. Valorile se indic n ordinea in care au fost indicate campurile respective in clauza INTO. Numrul de valori n list_valori este acelai ca i numrul de cmpuri din list_campuri. De exepmlu: 1. INSERT INTO produse(descriere) VALUES (Telefon Siemens C65) 2. INSERT INTO produse (descriere, pret, exist) VALUES('Telefon Siemens C75',100,TRUE) Deci formatul general al instruciunii INSERT este: INSERT INTO nume_tabel (lista_campuri) VALUES(lista_valori) Instruciunea de modificare Instruciunea UPDATE permite modificarea datelor din BD i are urmtoarea sintax: UPDATE nume_tabel SET list_campuri-valori Parametrul nume_tabel determin n care tabel se va realiza modificarea. Clauza SET se folosete pentru nscrierea valorii noi peste cea veche. Parametrul list_cmpuri-valori are formatul nume_camp=valoare. De exepmlu: 1. UPDATE Produse SET pret=10 2. UPDATE Produse SET pret=10, exist=true Dac este nevoie de a modifica numai unele date ce satisfac careva condiii, atunci se folosete clauza WHERE cu urmtoarea sintax: UPDATE nume_tabel SET list_cmpuri-valori WHERE condiie
30

Parametrul condiie a clauzei WHERE din instruciunea UPDATE este la fel ca i n instruciunea SELECT. De exepmlu: 1. UPDATE Produse SET pret=pret*10 WHERE descriere= CD-R Benq 700MB 2. UPDATE Produse SET pret=pret/2 WHERE NOT exist=true Deci, in urma celor expuse, putem stabili formatul instruciunii UPDATE: UPDATE nume_tabel SET list_cmpuri-valori {WHERE condiie} Clauza WHERE este opional n instruciunea UPDATE, de aceia ea se indic ntre paranteze figurate. Instruciunea de selecie inclus O rspandire foarte larg n SQL le au cererile imbricate, care mai sunt numite cereri incluse. Cererea imbricat este o interogare de selecie, n interiorul creia este inclus o alt interogare de selecie. La proiectarea unei cereri incluse este necesar ca interogarea imbricat s returneze valori dintr-un singur camp. Interogarea imbricat este o comparare de tipul apartenenei la o mulime. O valoare se compar cu o coloan de date, returnat de interogarea inclus. Dac aceast valoare coincide cu o valoare din coloan, atunci se afieaz cmpurile indicate in interogarea principal. O cerere imbricat are urmtoarea sintax: SELECT list_cmpuri FROM list_tabele WHERE nume_camp IN (SELECT nume_camp FROM nume_tabel)
31

De exemplu: 1. SELECT nume, prenume FROM angajati WHERE [codul oficiului] IN (SELECT [cod-oficiu] FROM oficii WHERE localitatea='Beltsy') 2. SELECT nume, prenume,virsta FROM angajati WHERE [codul oficiului] IN (SELECT [cod-oficiu] FROM oficii WHERE regiunea<>'sud') Dac interogarea inclus returneaz o singur valoare, atunci in loc de cuvantul cheie IN se poate utiliza un operator relaional. De exemplu: 1. SELECT nume, prenume FROM angajati WHERE [codul oficiului]=(SELECT [cod-oficiu] FROM oficii WHERE localitatea='Beltsy') 2. SELECT nume, prenume, virsta FROM angajati WHERE [codul oficiului]<>(SELECT [cod-oficiu] FROM oficii WHERE localitatea='Soroca') Parametrizarea interogrilor La activarea unei instruciuni de selecie la ecran, de obicei apare un tabel care afieaz informaia bazei de date conform coninutului instruciunii SELECT. La activarea unei instruciuni de actualizare cum ar fi tergerea datelor, modificarea datelor, inserarea datelor sau crearea unui tabel la ecran apare un mesaj care ne anun c
32

interogarea s-a executat cu succes i cte nregistrri au fost actualizate. Rezultatul instruciunilor de afiare i actualizare a datelor, poate depinde de unele valori ce pot fi modificate la fiecare lansare a interogrii. Aceste valori se numesc parametri sau variabile, iar interogrile ce conin astfel de valori se numesc interogri parametrizate. Pentru a parametriza o interogare se folosete cuvntul cheie PARAMETERS, care se indic la nceputul instruciunii i are urmtoarea sintax: PARAMETERS lista_parametrilor Lista_parametrilor indic valorile ce vor fi introduse nainte de afiarea sau actualizarea datelor i sunt separate prin virgul. Dac parametrul este alctuit din dou sau mai multe cuvinte, atunci el se indic ntre paranteze ptrate. Dac este un singur cuvant atunci parantezele ptrate pot fi neglijate. Dup indicarea parametrului trebuie de specificat tipul de date a parametrului. De exemplu: 1. PARAMETERS [indica numele persoanei cautate] TEXT 2. PARAMETERS nume TEXT, prenume TEXT 3. PARAMETERS [coeficientul de majorare] NUMBER Parametrul declarat de instruciunea PARAMETERS poate fi folosit n codul instruciunii ca o valoare constant n clauza WHERE a instruciunii sau la descrierea unui camp calculat. Valoarea parametrului este constant pe toat perioada de execuie a instruciunii. De exemplu: 1. PARAMETERS numele TEXT SELECT nume, prenume FROM angajati WHERE nume=numele 2. PARAMETERS [majorarea pretului] NUMBER UPDATE produse SET pret=pret*[majorarea pretului]
33

RSPUNSURI n continuare se va prezenta n form de tabele rspunsurile la problemele bazate pe selectarea datelor. Problema 1: Compania Auto Lada Asito Astra Avon Basarabia Bizpro Cascad Floribel Floarea InLac Knauf Luck Oil Patria Petrom TransCom Tirex Tutun Ind Vitanta Zorile Problema 2: Localitatea Regiunea Beltsy nord Kishinew centru Cahul sud Edinets nord Glodeni nord Orhei centru
34

Localitatea Rezina Soroca Ungheni

Regiunea nord nord centru

Problema 3: Cod-oficiu Localitatea Regiunea Codul managerului BL Beltsy nord ML C Kishinew centru VD CH Cahul sud HI ED Edinets nord ML GL Glodeni nord ML OR Orhei centru LV RZ Rezina nord SD SR Soroca nord BN UN Ungheni centru VD Problema 4: Cod-produs Descriere Pret Exist 1 Monitor LG 17 100.00 True 2 Monitor Samsung 15 50.00 False 3 Televizor JVS 54cm 280.00 False 4 Procesor Pentium 4 130.00 True 5 Procesor Celeron 2000 125.00 True 6 Mouse Genius optic 4.00 False 7 Mouse Logitech optic 5.00 True 8 Televizor Sony 72cm 485.00 False 9 DVD Sony 50 75.00 False 10 DVD Sony 32-16-32 135.00 True 11 CD-R Benq 700MB 0.10 True 12 CD-RW Benq 700MB 0.25 True 13 Tastiera Logitech alba 6.75 True 14 Tastiera Logitech neagra 9.75 False 15 Monitor Samsung 17 85.50 True 16 Monitor Samsung 21 109.50 False
35

Cod-produs Descriere Pret Exist 17 Monitor Samtron 15 35.50 False 18 Televizor Alfa 51cm 100.40 True 19 Televizor Polar 54cm 200.00 False 20 Filtru Sven 220V 3.75 True 21 Telefon Siemens A55 85.00 True Problema 5: Cod-angajat Nume Prenume Virsta BC Bucataru Constantin 31 BN Bucur Nicolae 27 CI Cozma Ion 20 DE Dodon Elena 34 DR Dutca Radion 33 FE Frumosu Emilia 37 FN Florea Nicoleta 23 GC Grosu Corina 19 GI Gomoja Ilie 32 GL Grosu Leonid 23 GM Grosu Mihai 42 GT Graur Teodor 35 HI Harea Igor 25 LA Lungu Alexandru 43 LV Lisnic Vladimir 29 ML Mutu Livia 38 MS Mutu Sorina 35 NV Nanu Vasile 45 PI Prisacaru Inga 27 RD Rusu Dorina 35 SA Speriatu Ana 31 SD Spada Doru 29 SM Surdu Mihaiela 25 VD Vieru Dorin 32 VI Vrabie Ion 42
36

Problema 6: Cod-companie Compania AL AS AT AV BA BI CA FL FB IL KN LO PA PE TC TI TU VT ZO Auto Lada Asito Astra Avon Basarabia Bizpro Cascad Floarea Floribel InLac Knauf Luck Oil Patria Petrom TransCom Tirex Tutun Ind Vitanta Zorile Problema 7: Cod-angajat BC BN CI DE DR FE FN GC GI

Reprezentantul companiei NV PI PI GC GC PI GI GL GL GI PI NV DR NV MS NV GL GI GT Prenume Constantin Nicolae Ion Elena Radion Emilia Nicoleta Corina Ilie

Datoria 7 500.00 26 000.00 14 780.00 12 000.00 0.00 13 050.00 12 300.00 0.00 600.00 1 000.00 0.00 13 000.00 500.00 50 000.00 6 000.00 5 000.00 1 000.00 800.00 22 890.00

Nume Bucataru Bucur Cozma Dodon Dutca Frumosu Florea Grosu Gomoja

37

Cod-angajat Nume Prenume GL Grosu Leonid GM Grosu Mihai GT Graur Teodor HI Harea Igor LA Lungu Alexandru LV Lisnic Vladimir ML Mutu Livia MS Mutu Sorina NV Nanu Vasile PI Prisacaru Inga RD Rusu Dorina SA Speriatu Ana SD Spada Doru SM Surdu Mihaiela VD Vieru Dorin VI Vrabie Ion Problema 8: Cod-companie Compania AL Auto Lada AS Asito AT Astra AV Avon BA Basarabia BI Bizpro CA Cascad FB Floribel FL Floarea IL InLac KN Knauf LO Luck Oil PA Patria PE Petrom
38

Cod-companie Compania TC TransCom TI Tirex TU Tutun Ind VT Vitanta ZO Zorile Problema 9: Cod-angajat Nume Prenume Functia Virsta BC Bucataru Constantin contabil 31 BN Bucur Nicolae manager 27 CI Cozma Ion reprezentant 20 DE Dodon Elena contabil 34 DR Dutca Radion reprezentant 33 FE Frumosu Emilia contabil 37 FN Florea Nicoleta reprezentant 23 GC Grosu Corina reprezentant 19 GI Gomoja Ilie reprezentant 32 GL Grosu Leonid reprezentant 23 GM Grosu Mihai sef 42 GT Graur Teodor reprezentant 35 HI Harea Igor manager 25 LA Lungu Alexandru sef adjunc 43 LV Lisnic Vladimir manager 29 ML Mutu Livia manager 38 MS Mutu Sorina reprezentant 35 NV Nanu Vasile reprezentant 45 PI Prisacaru Inga reprezentant 27 RD Rusu Dorina reprezentant 35 SA Speriatu Ana contabil 31 SD Spada Doru manager 29 SM Surdu Mihaiela reprezentant 25 VD Vieru Dorin manager 32 VI Vrabie Ion contabil 42
39

Problema 10: Localitatea oficiului Beltsy Kishinew Cahul Edinets Glodeni Orhei Rezina Soroca Ungheni Problema 11: Cod personal BC BN CI DE DR FE FN GC GI GL GM GT HI LA LV ML MS NV
40

Regiunea oficiului nord centru sud nord nord centru nord nord centru Prenumele angajatului Constantin Nicolae Ion Elena Radion Emilia Nicoleta Corina Ilie Leonid Mihai Teodor Igor Alexandru Vladimir Livia Sorina Vasile

Numele angajatului Bucataru Bucur Cozma Dodon Dutca Frumosu Florea Grosu Gomoja Grosu Grosu Graur Harea Lungu Lisnic Mutu Mutu Nanu

Cod Numele Prenumele personal angajatului angajatului PI Prisacaru Inga RD Rusu Dorina SA Speriatu Ana SD Spada Doru SM Surdu Mihaiela VD Vieru Dorin VI Vrabie Ion Problema 12: Compania Datoria Asito 26 000.00 Astra 14 780.00 Auto Lada 7 500.00 Avon 12 000.00 Basarabia 0.00 Bizpro 13 050.00 Cascad 12 300.00 Floarea 0.00 Floribel 600.00 InLac 1 000.00 Knauf 0.00 Luck Oil 13 000.00 Patria 500.00 Petrom 50 000.00 Tirex 5 000.00 TransCom 6 000.00 Tutun Ind 1 000.00 Vitanta 800.00 Zorile 22 890.00 Problema 13: Nume Prenume Functia Bucataru Constantin contabil
41

Nume Prenume Functia Bucur Nicolae manager Cozma Ion reprezentant Dodon Elena contabil Dutca Radion reprezentant Florea Nicoleta reprezentant Frumosu Emilia contabil Gomoja Ilie reprezentant Graur Teodor reprezentant Grosu Mihai sef Grosu Leonid reprezentant Grosu Corina reprezentant Harea Igor manager Lisnic Vladimir manager Lungu Alexandru sef adjunc Mutu Livia manager Mutu Sorina reprezentant Nanu Vasile reprezentant Prisacaru Inga reprezentant Rusu Dorina reprezentant Spada Doru manager Speriatu Ana contabil Surdu Mihaiela reprezentant Vieru Dorin manager Vrabie Ion contabil Problema 14: Compania Datoria Petrom 50 000.00 Asito 26 000.00 Zorile 22 890.00 Astra 14 780.00 Bizpro 13 050.00 Luck Oil 13 000.00
42

Compania Cascad Avon Auto Lada TransCom Tirex Tutun Ind InLac Vitanta Floribel Patria Basarabia Knauf Floarea Problema 15: Nume Grosu Cozma Grosu Florea Surdu Harea Bucur Prisacaru Spada Lisnic Problema 16: Nume Nanu Lungu Grosu Vrabie Mutu

Datoria 12 300.00 12 000.00 7 500.00 6 000.00 5 000.00 1 000.00 1 000.00 800.00 600.00 500.00 0.00 0.00 0.00 Functia reprezentant reprezentant reprezentant reprezentant reprezentant manager manager reprezentant manager manager Functia reprezentant sef adjunc sef contabil manager
43

Prenume Corina Ion Leonid Nicoleta Mihaiela Igor Nicolae Inga Doru Vladimir Prenume Vasile Alexandru Mihai Ion Livia

Nume Frumosu Rusu Graur Mutu Dodon Problema 17: Nume Lungu Grosu Vieru Nanu Frumosu Mutu Dutca Dodon Surdu Grosu Problema 18:

Prenume Emilia Dorina Teodor Sorina Elena Prenume Alexandru Mihai Dorin Vasile Emilia Livia Radion Elena Mihaela Leonid Compania Petrom

Functia contabil reprezentant reprezentant reprezentant contabil Functia sef adjunc sef manager reprezentant contabil manager reprezentant contabil reprezentant reprezentant

Problema 19: Nume Prenume Codul personal Functia Grosu Corina GC reprezentant Problema 20: Descriere Pret 100.00 Monitor LG 17 Procesor Pentium 4 130.00 Procesor Celeron 2000 125.00 Mouse Logitech optic 5.00 DVD Sony 32-16-32 135.00 CD-R Benq 700MB 0.10 CD-RW Benq 700MB 0.25
44

Descriere Tastiera Logitech alba Monitor Samsung 17 Televizor Alfa 51cm Filtru Sven 220V Telefon Siemens A55 Problema 21: Localitatea Beltsy Edinets Glodeni Rezina Soroca Problema 22: Localitatea Cahul Problema 23: Localitatea Kishinew Orhei Ungheni Problema 24: Compania Asito Astra Avon Bizpro Cascad Luck Oil Petrom Zorile

Pret 6.75 85.50 100.40 3.75 85.00

45

Problema 25: Compania Auto Lada Basarabia Floribel Floarea InLac Knauf Patria TransCom Tirex Tutun Ind Vitanta Problema 26: Compania Asito Astra Avon Bizpro Cascad Luck Oil Petrom Zorile Problema 27: Compania Auto Lada Basarabia Floribel Floarea InLac Knauf Patria TransCom
46

Compania Tirex Tutun Ind Vitanta Problema 28: Compania Basarabia Floarea Knauf Problema 29: Nume Prenume Functia Bucataru Constantin contabil Dodon Elena contabil Frumosu Emilia contabil Grosu Mihai sef Lungu Alexandru sef adjunc Speriatu Ana contabil Vrabie Ion contabil Problema 30: Nume Prenume Virsta Functia Bucur Nicolae 27 manager Graur Teodor 35 reprezentant Harea Igor 25 manager Mutu Livia 38 manager Spada Doru 29 manager Surdu Mihaela 25 reprezentant Vieru Dorin 32 manager Problema 31: Localitatea Beltsy Cahul Edinets Glodeni
47

Localitatea Rezina Soroca Problema 32: Localitatea Beltsy Kishinew Edinets Glodeni Orhei Rezina Soroca Ungheni Problema 33: Localitatea Kishinew Cahul Orhei Ungheni Problema 34: Nume Vieru Vrabie Problema 35: Nume Cozma Dutca Florea Gomoja Harea Spada Prenume Ion Radion Nicoleta Ilie Igor Doru Prenume Dorin Ion

48

Problema 36: Nume Cozma Dodon Frumosu Florea Grosu Gomoja Grosu Grosu Problema 37: Nume Grosu Problema 38: Nume Graur Grosu Grosu Grosu Problema 39: Prenume Ion Elena Emilia Nicoleta Corina Ilie Leonid Mihai Virsta 19 Functia reprezentant reprezentant reprezentant sef

Prenume Corina Prenume Teodor Corina Leonid Mihai Rezultat 25

Problema 40: Rezultat 3 Problema 41: Rezultat 11 Problema 42: Rezultat 5

49

Problema 43: Rezultat 6 Problema 44: Rezultat 12 Problema 45: Rezultat 186 420.00 Problema 46: Descriere Televizor Sony 72cm Problema 47: Descriere CD-R Benq 700MB Problema 48: Descriere DVD Sony 32-16-32 Problema 49: Descriere CD-R Benq 700MB Problema 50: Descriere Televizor Sony 72cm Problema 51: Descriere Mouse Genius optic Problema 52: Regiunea centru nord Sud Numarul de localitati 3 5 1

50

Problema 53: Nume Vieru Problema 54: Nume Vrabie Frumosu Grosu Bucataru Speriatu Dodon Lungu Problema 55:

Prenume Dorin Prenume Ion Emilia Mihai Constantin Ana Elena Alexandru Rezultat 9 811.58

Functia manager Functia contabil contabil sef contabil contabil contabil sef adjunc

Problema 56: Rezultat 20 502.50 Problema 57: Rezultat 15 Problema 58: Rezultat 8 Problema 59: Nume Prenume Bucataru Constantin Bucur Nicolae Dodon Elena Dutca Radion Gomoja Ilie Lisnic Vladimir Prisacaru Inga Functia contabil manager contabil reprezentant reprezentant manager reprezentant Virsta 31 27 34 33 32 29 27
51

Nume Prenume Speriatu Ana Spada Doru Vieru Dorin Problema 60: Nume Prenume Vieru Dorin Problema 61: Nume Prenume Grosu Corina Problema 62:

Functia contabil manager manager Functia manager Functia reprezentant Regiunea nord

Virsta 31 29 32 Data angajarii 08.02.1998 Data angajarii 04.04.2000

Problema 63: Regiunea sud Problema 64: Compania Patria InLac Vitanta Cascad Zorile Avon Basarabia Floribel Floarea Tutun Ind TransCom Luck Oil Auto Lada Petrom Tirex
52

Nume Dutca Gomoja Gomoja Gomoja Grau Grosu Grosu Grosu Grosu Grosu Mutu Nanu Nanu Nanu Nanu

Prenume Radion Ilie Ilie Ilie Teodor Corina Corina Leonid Leonid Leonid Sorina Vasile Vasile Vasile Vasile

Compania Bizpro Astra Asito Knauf Problema 65: Compania Asito Astra Bizpro Floribel Floarea Knauf Tutun Ind Problema 66: Nume Bucataru Bucur Cozma Dodon Dutca Florea Frumosu Gomoja Graur Grosu Grosu Grosu Harea Lisnic Lungu Mutu Mutu

Nume Prisacaru Prisacaru Prisacaru Prisacaru Nume Prisacaru Prisacaru Prisacaru Grosu Grosu Prisacaru Grosu Prenume Constantin Nicolae Ion Elena Radion Nicoleta Emilia Ilie Teodor Corina Leonid Mihai Igor Vladimir Alexandru Livia Sorina

Prenume Inga Inga Inga Inga Prenume Inga Inga Inga Leonid Leonid Inga Leonid Localitatea Soroca Soroca Orhei Edinets Glodeni Beltsy Edinets Cahul Soroca Rezina Edinets Kishinew Cahul Orhei Kishinew Beltsy Ungheni
53

Nume Prenume Localitatea Nanu Vasile Kishinew Prisacaru Inga Ungheni Rusu Dorina Orhei Spada Doru Rezina Speriatu Ana Glodeni Surdu Mihaiela Beltsy Vieru Dorin Kishinew Vrabie Ion Rezina Problema 67: Nume Prenume Localitatea Vieru Dorin Ungheni Vieru Dorin Kishinew Spada Doru Rezina Mutu Livia Glodeni Mutu Livia Edinets Mutu Livia Beltsy Lisnic Vladimir Orhei Harea Igor Cahul Bucur Nicolae Soroca Problema 68: Descriere Cantitatea totala CD-R Benq 700MB 24 CD-RW Benq 700MB 22 DVD Sony 50 2 Filtru Sven 220V 9 3 Monitor Samsung 15 15 Monitor Samsung 17 11 Monitor Samsung 21 13 Monitor Samtron 15 Mouse Genius optic 2 Mouse Logitech optic 5 Procesor Celeron 2000 21
54

Descriere Procesor Pentium 4 Tastiera Logitech alba Tastiera Logitech neagra Telefon Siemens A55 Televizor Alfa 51cm Televizor JVS 54cm Televizor Polar 54cm Televizor Sony 72cm Problema 69: Nume Prenume Mutu Sorina Graur Teodor Dutca Radion Problema 70: Nume Bucur Harea Lisnic Spada Problema 71: Prenume Nicolae Igor Vladimir Doru

Cantitatea totala 14 20 28 5 11 13 8 4 Functia reprezentant reprezentant reprezentant Suma planificata 28 000.00 22 000.00 351.00 18 000.00

Data comenzii 03.03.2005 Problema 72: Data comenzii 02.02.2005 22.02.2005 02.03.2005 Problema 73: Data comenzii 16.08.2005 03.01.2005

55

Problema 74: Data comenzii 24.05.2005 Problema 75: Nume Prenume Functia Localitatea Florea Nicoleta reprezentant Beltsy Problema 76: Nume Prenume Functia Localitatea Gomoja Ilie reprezentant Cahul Problema 77: Nume Prenume Data angajarii Functia Bucataru Constantin 18.01.2001 contabil Bucur Nicolae 31.01.2001 manager Graur Teodor 18.08.2004 reprezentant Problema 78: Nume Prenume Data angajarii Functia Regiunea Gomoja Ilie 13.07.2005 reprezentant sud Problema 79: Compania Nume Prenume Astra Prisacaru Inga Problema 80: Compania Nume Prenume Cascad Gomoja Ilie Problema 81: Nume Prenume Virsta Compania Grosu Corina 19 Avon Grosu Corina 19 Basarabia Problema 82: Nume Prenume Virsta Compania Nanu Vasile 45 Tirex Nanu Vasile 45 Petrom Nanu Vasile 45 Luck Oil Nanu Vasile 45 Auto Lada
56

Problema 83: Data comenzii 01.01.2005 01.01.2005 03.01.2005 03.01.2005 14.01.2005 18.01.2005 31.01.2005 31.01.2005 02.02.2005 11.02.2005 11.02.2005 22.02.2005 02.03.2005 03.03.2005 04.03.2005 12.03.2005 12.03.2005 26.03.2005 26.03.2005 04.04.2005 14.04.2005 18.04.2005 18.04.2005 18.04.2005 01.05.2005 24.05.2005 24.05.2005 13.06.2005 13.06.2005 16.06.2005 04.07.2005

Suma de bani 25.00 342.00 0.75 117.00 684.00 0.75 0.20 87.75 0.50 150.00 170.00 13.50 71.00 0.30 29.25 39.00 485.00 2.50 1 455.00 0.50 20.25 280.00 803.20 7.50 255.00 2 800.00 400.00 74.25 150.00 876.00 0.50
57

Data comenzii Suma de bani 11.07.2005 256.50 16.07.2005 301.20 16.07.2005 1 430.00 08.08.2005 1 125.00 08.08.2005 0.40 16.08.2005 1 500.00 16.08.2005 106.50 20.09.2005 8.00 20.09.2005 328.50 10.10.2005 26.25 10.10.2005 0.50 11.11.2005 1 200.00 12.11.2005 1.00 12.11.2005 390.00 19.11.2005 284.00 12.12.2005 560.00 12.12.2005 27.00 Problema 84: Compania Numarul de tranzactii Asito 2 Astra 4 Auto Lada 1 Avon 1 Bizpro 1 Cascad 3 Floarea 3 Floribel 2 InLac 2 Knauf 1 Luck Oil 2 Patria 5 Petrom 4
58

Compania Numarul de tranzactii Tirex 1 TransCom 1 Tutun Ind 5 Vitanta 6 Zorile 4 Problema 85: Nume Prenume Suma acumulata Bucataru Constantin 803.20 Bucur Nicolae 1 446.00 Cozma Ion 1 900.00 Dodon Elena 1 126.75 Florea Nicoleta 2 970.00 Gomoja Ilie 599.95 Grosu Corina 1 605.60 Grosu Leonid 27.75 Harea Igor 191.75 Lisnic Vladimir 351.00 Mutu Livia 1 437.50 Mutu Sorina 26.75 Nanu Vasile 473.50 Prisacaru Inga 2 243.80 Rusu Dorina 309.20 Spada Doru 1 231.75 Surdu Mihaiela 170.75 Problema 86: Nume Prenume Functia Virsta Florea Nicoleta reprezentant 23 Problema 87: Nume Prenume Functia Virsta Mutu Sorina reprezentant 35

59

Problema 88: Descrierea Televizor Polar 54cm Problema 89: Descrierea Procesor Pentium 4 Problema 90: Compania Vitanta Problema 91: Compania Knauf Auto Lada Avon TransCom Tirex Bizpro Problema 92: Compania Basarabia Problema 93: Nume Prenume Bucataru Constantin Bucur Nicolae Cozma Ion Dutca Radion Florea Nicoleta Gomoja Ilie Grosu Corina Grosu Leonid Harea Igor Lisnic Vladimir Mutu Livia
60

Suma planificata Suma acumulata 0.00 803.20 28 000.00 1 416.75 2 000.00 1 900.00 3 250.00 1 126.50 2 500.00 2 970.00 3 250.00 599.95 1 900.00 1 605.40 2 500.00 27.75 22 000.00 191.75 351.00 351.00 15 000.00 1 437.50

Nume Prenume Mutu Sorina Nanu Vasile Prisacaru Inga Rusu Dorina Spada Doru Surdu Mihaiela Problema 94: Nume Bucataru Bucur Cozma Dutca Florea Gomoja Grosu Grosu Harea Lisnic Mutu Mutu Nanu Prisacaru Rusu Spada Surdu Problema 95: Nume Bucataru Florea Problema :96 Nume Bucur

Suma planificata Suma acumulata 3 500.00 26.75 4 500.00 473.50 2 750.00 2 243.80 3 500.00 309.20 18 000.00 1 231.75 20 000.00 170.75 Prenume Constantin Nicolae Ion Radion Nicoleta Ilie Corina Leonid Igor Vladimir Livia Sorina Vasile Inga Dorina Doru Mihaiela Prenume Constantin Nicoleta Prenume Nicolae Diferenta -803.20 26 583.25 100.00 2 123.50 -470.00 2 650.05 294.6 2 472.25 21 808.25 0.00 13 562.50 3 473.25 4 026.50 506.20 3 190.80 16 768.25 19 829.25 Functia contabil reprezentant Functia manager
61

Nume Cozma Dutca Gomoja Grosu Grosu Harea Mutu Mutu Nanu Prisacaru Rusu Spada Surdu Problema 97: Nume Lisnic Problema 98:

Prenume Ion Radion Ilie Corina Leonid Igor Livia Sorina Vasile Inga Dorina Doru Mihaiela Prenume Vladimir Localitatea Beltsy

Functia reprezentant reprezentant reprezentant reprezentant reprezentant manager manager reprezentant reprezentant reprezentant reprezentant manager reprezentant Functia manager

Problema 99: Localitatea Edinets Problema 100: Nume Mutu Problema 101: Nume Mutu Prenume Livia Prenume Livia

62

ANEX

Cod-produs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

PRODUSE Descriere Monitor LG 17 Monitor Samsung 15 Televizor JVS 54cm Procesor Pentium 4 Procesor Celeron 2000 Mouse Genius optic Mouse Logitech optic Televizor Sony 72cm DVD Sony 50 DVD Sony 32-16-32 CD-R Benq 700MB CD-RW Benq 700MB Tastiera Logitech alba Tastiera Logitech neagra Monitor Samsung 17 Monitor Samsung 21 Monitor Samtron 15 Televizor Alfa 51cm Televizor Polar 54cm Filtru Sven 220V Telefon Siemens A55

Pret 100.00 50.00 280.00 130.00 125.00 4.00 5.00 485.00 75.00 135.00 0.10 0.25 6.75 9.75 85.50 109.50 35.50 100.40 200.00 3.75 85.00

Exist True False False True True False True False False True True True True False True False False True False True True

63

Cod-oficiu BL C CH ED GL OR RZ SR UN Codcompanie AL AS AT AV BA BI CA FB FL IL KN LO PA PE TC TI TU VT ZO
64

OFICII Localitatea Regiunea Beltsy nord Kishinew centru Cahul sud Edinets nord Glodeni nord Orhei centru Rezina nord Soroca nord Ungheni centru Compania Auto Lada Asito Astra Avon Basarabia Bizpro Cascad Floribel Floarea InLac Knauf Luck Oil Patria Petrom TransCom Tirex Tutun Ind Vitanta Zorile

Codul managerului ML VD HI ML ML LV SD BN VD Datoria 7 500.00 26 000.00 14 780.00 12 000.00 0.00 13 050.00 12 300.00 600.00 0.00 1 000.00 0.00 13 000.00 500.00 50 000.00 6 000.00 5 000.00 1 000.00 800.00 22 890.00

COMPANII Reprezentantul companiei NV PI PI GC GC PI GI GL GL GI PI NV DR NV MS NV GL GI GT

ANGAJATI
Suma planificata Prenume Codul oficiului Data angajarii Functia Codangajat Nume Virsta

BC BN CI DE DR FE FN GC GI GL GM GT HI LA LV ML MS NV PI RD SA SD SM VD VI

Bucataru Bucur Cozma Dodon Dutca Frumosu Florea Grosu Gomoja Grosu Grosu Graur Harea Lungu Lisnic Mutu Mutu Nanu Prisacaru Rusu Speriatu Spada Surdu Vieru Vrabie

Constantin Nicolae Ion Elena Radion Emilia Nicoleta Corina Ilie Leonid Mihai Teodor Igor Alexandru Vladimir Livia Sorina Vasile Inga Dorina Ana Doru Mihaiela Dorin Ion

31 27 20 34 33 37 23 19 32 23 42 35 25 43 29 38 35 45 27 35 31 29 25 32 42

contabil manager reprezentant contabil reprezentant contabil reprezentant reprezentant reprezentant reprezentant sef reprezentant manager sef adjunc manager manager reprezentant reprezentant reprezentant reprezentant contabil manager reprezentant manager contabil

SR SR OR ED GL ED BL RZ CH ED C SR CH C OR BL UN C UN OR GL RZ BL C RZ

18.01.2001 31.01.2001 17.11.2001 20.02.2000 12.12.1999 12.02.1998 13.06.2000 04.04.2000 13.07.2005 28.03.2000 07.02.1998 18.08.2004 30.03.2003 07.02.1998 13.09.2001 09.02.1999 06.04.2004 09.02.1998 18.03.2001 18.09.2001 15.01.2003 12.01.2003 12.03.2000 08.02.1998 18.10.2002

0 28 000 2 000 0 3 250 0 2 500 1 900 3 250 2 500 0 35 000 22 000 0 351 15 000 3 500 4 500 2 750 3 500 0 18 000 20 000 80 000 0

65

Data Codul comenzii clientului 01.01.2005 BI 01.01.2005 IL 03.01.2005 VT 03.01.2005 ZO 14.01.2005 VT 18.01.2005 TI 31.01.2005 CA 31.01.2005 VT 02.02.2005 PE 11.02.2005 LO 11.02.2005 TI 22.02.2005 TI 02.03.2005 AL 03.03.2005 FL 04.03.2005 TI 12.03.2005 FL 12.03.2005 VT 26.03.2005 AS 26.03.2005 PA 04.04.2005 AT 14.04.2005 FL 18.04.2005 AS 18.04.2005 PE 18.04.2005 TC 01.05.2005 ZO 24.05.2005 AT 24.05.2005 AV 13.06.2005 AT 13.06.2005 PA 16.06.2005 FB
66

TRANZACTII Codul Codul Cantitatea vinzatorului produsului NV 7 5 PI 15 4 HI 14 12 GI 12 3 BN 15 8 GL 12 3 GI 11 2 BN 14 9 SM 12 2 SM 2 3 FN 21 2 NV 13 2 LV 17 2 PI 11 3 SD 14 3 PI 8 1 GI 14 4 GC 8 3 SD 12 10 DR 11 5 SM 13 3 LV 3 1 BC 18 8 ML 20 2 BN 21 3 FN 3 10 CI 19 2 GC 9 2 HI 13 11 PI 16 8

Data comenzii 04.07.2005 11.07.2005 16.07.2005 16.07.2005 08.08.2005 08.08.2005 16.08.2005 16.08.2005 20.09.2005 20.09.2005 10.10.2005 10.10.2005 11.11.2005 12.11.2005 12.11.2005 19.11.2005 12.12.2005 12.12.2005

Codul clientului ZO TI FB ZO LO PA CA VT KN PA AT VT PE PA PE CA IL TI

Codul Codul Cantitatea vinzatorului produsului HI 11 5 PI 15 3 RD 18 3 ML 4 11 DR 5 9 GC 11 4 CI 5 12 NV 17 3 RD 6 2 NV 16 3 MS 11 5 MS 20 7 SD 19 6 DR 12 4 BN 4 3 PI 17 8 GL 13 4 GI 3 2

67

BIBLIOGRAFIE 1. Vasile Florescu. Baze de date: fundamente teoretice i practice. Bucureti: Editura Infomega, 2002. - 548p. 2. Vasile Florescu. Baze de date: organizare, proiectare i implementare. Bucureti: Editura Economic, 1995. 348p. 3. Ion Lungu. Baze de date: organizare, proiectare i implementare. Bucureti: Editura All, 1995. - 354p. 4. Robert Dollinger. Baze de date i gestiunea tranzaciilor. Cluj Napoca: Editura Albastr, 2000. 304p. 5. . Microsft SQL Server 21 . : M, 2001. 704. 6. Pascu Corina. Totul despre SQL: interogarea bazelor de date. Bucureti: Editura Tehnic, 1994. - 159p. 7. Vasile Florescu. Baze de date: concepere prin normalizare, dezvoltare i utilizare folosind Microsoft Access, interogare n SQL. Bucureti: Editura Economic, 1999. 352p. 8. . Microsoft SQL Server 2000: . : DiaSoft, 2001. - 688. 9. . Microsoft SQL Server 7 . , , 2000. - 896.

68