Documente Academic
Documente Profesional
Documente Cultură
OCTAVIAN COZNIUC
BAZE DE DATE
Blti, 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
DESCRIEREA BAZEI DE DATE MARKETING.......................... 5 Tabelul Oficii ....................................................................................... 5 Tabelul Companii .......................................................................................
6
PROBLEME.....................................................................................
8
Actualizarea datelor ....................................................................................... I8 Parametrizarea interogrilor ....................................................................................... 21 LIMBAJUL SQL............................................................................ 22 Introducere .......................................................................................
22
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.
cod-companie compania reprezentantul companiei datoria cod-angajat nume prenume virsta funcia codul oficiului data angajrii suma planificata
exist
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; 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 PROBLEME Selectarea datelor
3. Proiectai o interogare, ce ar afia: numele, prenumele i funcia angajailor n ordinea alfabetic dup nume i prenume. 4. Proiectai o interogare, ce ar afia denumirea companiilor
i datoria lor n ordinea descresctoare dup datorie.
6. Proiectai o interogare, ce ar afia: numele, prenumele, funcia celor mai vrstnici 10 angajai. 7. Proiectai o interogare, ce ar afia: numele, prenumele,
funcia a 10 angajai cu o vechime mai mare in munc.
8. Proiectai o interogare, ce ar afia denumirea companiei cu cea mai mare datorie. 9. 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.
28. Proiectai o interogare, ce ar afia numrul de angajai. 29. 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. 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.
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.
53. Proiectai o interogare, ce ar afia valoarea medie a datoriilor companiilor. 54. Proiectai o interogare, ce ar afia valoarea medie a datorilor companiilor, ce au datorii mai mari ca 10 000 euro. 55. Proiectai o interogare, ce ar afia numrul de angajai,
ce sunt mai in varst de 30 ani.
56. Proiectai o interogare, ce ar afia numrul de angajai ce sunt mai n vrst de 40 ani sau mai tineri de 25 ani. 57. 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. 58. Proiectai o interogare, ce ar afia: numele, prenumele,
funcia, data angajrii managerului cu cea mai mare sum planificat.
10
59. Proiectai o interogare, ce ar afia: numele, prenumele, funcia, data angajrii reprezentantului unei companii cu cea mai mic sum planificat. 60. Proiectai o interogare, ce ar afia regiunea cu cele mai
multe oficii.
62. Proiectai o interogare, ce ar afia: compania, numele i prenumele reprezentantului companiei, in ordinea alfabetic dup nume i prenume. 63. 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.
65. 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. 66. Proiectai o interogare, ce ar afia descrierea produselor,
ce au fost vndute precum i cantitatea lor.
67. Proiectai o interogare, ce ar afia: numele, prenumele i funcia reprezentanilor unei singuri companii, in ordinea alfabetic a companiilor. 68. 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. 69. Proiectai o interogare, ce ar afia ziua, cand s-au vandut
produse la o sum minimal. 70. Proiectai o interogare, ce ar afia ziua, cand s-a vandut cea mai mic cantitate de produse.
11
73. Proiectai o interogare, ce ar afia: numele, prenumele, funcia, localitatea angajatului, care a incheiat contractul de cea mai mare sum. 74. Proiectai o interogare, ce ar afia: numele, prenumele,
funcia, localitatea angajatului, care a incheiat contractul de cea mai mic sum.
75. Proiectai o interogare, ce ar afia: numele, prenumele, data angajrii, funcia angajailor de la Soroca in ordinea alfabetic dup nume i prenume. 76. Proiectai o interogare, ce ar afia: numele, prenumele, data angajrii, funcia i regiunea angajatului, care a incheiat contractul de cea mai mic sum. 77. Proiectai o interogare, ce ar afia compania, ce a
incheiat contractul de cea mai mare sum, precum i numele, prenumele reprezentatului ei.
78. Proiectai o interogare, ce ar afia compania ce a incheiat contractul de cea mai mic sum, precum i numele, prenumele reprezentatului ei. 79. Proiectai o interogare, ce ar afia: numele, prenumele, vrsta celui mai tnr reprezentant a unei companii i denumirea companii pe care o reprezint. 80. Proiectai o interogare, ce ar afia: numele, prenumele, varsta celui mai varstnic reprezentant a unei companii i denumirea companii pe care o reprezint. 81. 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. o interogare, ce ar afia denumirea companiilor, ce particip la tranzacii i numrul de tranzacii realizate de companie.
82. Proiectai
12
83. Proiectai o interogare, ce ar afia: numele, prenumele i suma de bani acumulat de angajat in ordinea alfabetic dup nume i prenume. 84. Proiectai o interogare, ce ar afia: numele, prenumele, funcia i varsta angajatului care a acumulat cea mai mare sum de bani. 85. Proiectai o interogare, ce ar afia: numele, prenumele, funcia i varsta angajatului care a acumulat cea mai mic sum de bani. 86. 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. 90. Proiectai o interogare, ce ar afia denumirea companiei, care a incheiat cel mai mare 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.
13
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. 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
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.
14
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.
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. 107. Proiectai o interogare, ce ar modifica denumirea companiei Bizpro in Bussines Inc. Proiectai o interogare, ce ar aduga un oficiu nou n Otaci a regiunii de nord a crui manager va fi seful. Proiectai o interogare, ce ar terge din baza de date toi angajaii de la Orhei.
108. 109.
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.
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 cmpurile: Cod-angajat, Nume, Prenume Suma planificata i ar conine lista angajailor din regiunea de nord a rii.
111.
15
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 tranzaciile realizate pe data de 22.08.2005. Parametrizarea interogrilor ar terge toate
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.
127.
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.
Proiectai o interogare cu un parametru, ce ar afia codul, descrierea i preul produselor, ce sunt mai ieftine ca parametrul introdus de utilizator.
129.
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.
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.
132.
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. LIMBAJUL SQL
16
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 listcampuri FROM listtabele Parametrul listcmpuri 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. 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]
17
Dac este nevoie de a afia toate campurile unui tabel atunci parametrul listcmpuri este nlocuit printr-un simbol special numit asterisc (*) sau cuvantul cheie ALL. De exemplu: 1. SELECT * 2. SELECT All Parametrul listcmpuri mai poate conine i operaii aritmetice dintre cmpurile numerice i numere folosind parantezele rotunde i operatorii: adunarea +", scderea -", nmulirea *", mprirea /", ridicarea la putere A." 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 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 listtabele 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 listtabele
18
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: SELECT TOP numr listcampuri FROM listtabele Parametrul numr a clauzei TOP indic cte nregistrri vor fi afiate. De exemplu: 1.SELECT TOP 10 nume, prenume FROM angajai 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 listcmpuri FROM listtabele ORDER BY listcmpuri Parametrul listcmpuri 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 listcmpuri FROM listtabele GROUP BY listcmpuri Parametrul listcmpuri a clauzei GROUP BY indic dup care cmp se va realiza grupare datelor. De exemplu:
19
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 listcmpuri FROM listtabele 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' 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 listcmpuri FROM listtabele WHERE numecamp-textual LIKE 'text' - dac valoarea campului coincide cu textul 'text', sau WHERE numecamp-textual LIKE 'text%' - dac valoarea campului incepe cu textul 'text', sau WHERE numecamp-textual LIKE '%text' - dac valoarea campului se termin cu textul 'text', sau
20
WHERE numecamp-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 listcmpuri FROM listtabele WHERE numetabel 1. nume_camp1= nume_tabel2. nume_camp2 AND condiii De exemplu: 1. SELECT nume, prenume, localitatea FROM angajai, 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 listcmpuri FROM listtabele 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 listcmpuri} {ORDER BY listcmpuri}
21
Instruciunea de tergere Instruciunea DELETE permite tergerea datelor din BD i are urmtoarea sintax: DELETE FROM nume_tabel 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 numetabel (listcampuri) VALUES(list_valori) Parametrul nume_tabel a clauzei INTO determin tabelul in care se va face adugarea. Intre paranteze rotunde se indic parametrul listcmpuri, care reprezint numele campurilor tabelului indicat la inceput. Parametrul listvalori a clauzei VALUES se folosete pentru a indica valorile fiecrui cmp n nregistrarea nou. In acest parametru trebuie respectate regulile de scriere a valorilor. Valorile se indic n ordinea in care au fost indicate campurile respective in clauza INTO. Numrul de valori n listvalori este acelai ca i numrul de cmpuri din listcampuri. De exepmlu:
22
1. 2.
INSERT INTO produse(descriere) VALUES ('Telefon Siemens C65') INSERT INTO produse (descriere, pret, exist) VALUES('Telefon Siemens C75',100,TRUE) Deci formatul general al instruciunii INSERT este: INSERT INTO numetabel (listacampuri) VALUES(listavalori) Instruciunea de modificare
Instruciunea UPDATE permite modificarea datelor din BD i are urmtoarea sintax: UPDATE numetabel SET listcampuri-valori Parametrul numetabel determin n care tabel se va realiza modificarea. Clauza SET se folosete pentru nscrierea valorii noi peste cea veche. Parametrul listcmpuri-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 listcmpuri-valori WHERE condiie 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 numetabel SET listcmpuri-valori (WHERE condiie} Clauza WHERE este opional n instruciunea UPDATE, de aceia ea se indic ntre paranteze figurate. Instruciunea de selecie inclus
23
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 listcmpuri FROM listtabele WHERE numecamp IN (SELECT numecamp FROM numetabel) 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
24
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 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]
RSPUNSURI
25
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 Localitatea Regiunea Rezina nord Soroca nord Ungheni centru
26
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 Cod-produs Descriere Pret Exist Cod-produsDescrierePretExist1Monitor LG 35.50 False 4: 17 Monitor Samtron 15" 17"100.00True2Monitor Samsung 18 Televizor Alfa 51cm 15"50.00False3Televizor 100.40 True JVS 54cm280.00False4Procesor Pentium 19 Televizor Polar 54cm 200.00 False 4130.00True5Procesor 20 Filtru SvenCeleron 220V 2000125.00True6Mouse 3.75 True Genius optic4.00False7Mouse Logitech 21 Telefon Siemens A55 85.00 True
optic5.00True8Televizor Sony 72cm485.00False9DVD Sony 5075.00False10DVD Sony 32-16-32135.00True11CD-R Benq 700MB0.10True12CD-RW Benq 700MB0.25True13Tastiera Logitech alba6.75True14Tastiera Logitech neagra9.75False15Monitor Samsung 17"85.50True16Monitor Samsung 21"109.50False
Problema 5: Cod-angajat BC BN CI DE DR FE FN GC GI GL GM
Nume Bucataru Bucur Cozma Dodon Dutca Frumosu Florea Grosu Gomoja Grosu Grosu
Prenume Constantin Nicolae Ion Elena Radion Emilia Nicoleta Corina Ilie Leonid Mihai
Virsta 31 27 20 34 33 37 23 19 32 23 42
27
GT HI LA LV ML MS NV PI RD SA SD SM VD VI Cod-companie
Graur Harea Lungu Lisnic Mutu Mutu Nanu Prisacaru Rusu Speriatu Spada Surdu Vieru Vrabie Compania
AL AS AT AV BA BI CA FL FB IL KN LO PA PE TC TI TU VT ZO Problema 7: Cod-angajat GC_________ BC_________ GI_________ BN_________ CI_________ DE_________ DR_________ _FE________ FN_________
Teodor Igor Alexandru Vladimir Livia Sorina Vasile Inga Dorina Ana Doru Mihaiela Dorin Ion Reprezentantul companiei Auto Lada NV Asito PI Astra PI Avon GC Basarabia GC Bizpro PI Cascad GI Floarea GL Floribel GL InLac GI Knauf PI Luck Oil NV Patria DR Petrom NV TransCom MS Tirex NV Tutun Ind GL Vitanta GI Zorile GT
35 25 43 29 38 35 45 27 35 31 29 25 32 42 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
28
Prenume Dutca Constantin Frumosu Nicolae Florea Ion Grosu Elena Gomoja
Problema 8:
Cod-companie AL AS AT AV BA BI CA FB FL IL KN LO PA PE
Compania Auto Lada Asito Astra Avon Basarabia Bizpro Cascad Floribel Floarea InLac Knauf Luck Oil Patria Petrom
29
20DEDodonElenacontabil34DRDutcaRadionreprezentant33F EFrumosuEmiliacontabil37FNFloreaNicoletareprezentant23G CGrosuCorinareprezentant19GIGomojaIliereprezentant32GL GrosuLeonidreprezentant23GMGrosuMihaisef42GTGraurTe odorreprezentant35HIHareaIgormanager25LALunguAlexand rusef adjunc43LVLisnicVladimirmanager29MLMutuLiviamanager 38MSMutuSorinareprezentant35NVNanuVasilereprezentant4 5PIPrisacaruIngareprezentant27RDRusuDorinareprezentant3 5SASperiatuAnacontabil31SDSpadaDorumanager29SMSurd uMihaielareprezentant25VDVieruDorinmanager32VIVrabieI oncontabil42 Cod-companie
Compania TC TransCom TI Tirex TU Tutun Ind VT Vitanta ZO Zorile Localitatea Regiunea Problema 11: oficiului oficiului Beltsy Kishinew Cahul Edinets Glodeni Orhei Rezina Soroca Ungheni
Cod Numele Prenumele personal angajatului angajatului BC Bucataru Constantin BN Bucur Nicolae CI Cozma Ion DE Dodon Elena DR Dutca Radion FE Frumosu Emilia FN Florea Nicoleta GC Grosu Corina GI Gomoja Ilie GL Grosu Leonid GM Grosu Mihai GT Graur Teodor HI Harea Igor LA Lungu Alexandru LV Lisnic Vladimir ML Mutu Livia MS Mutu Sorina NVNanuVasile Cod Numele Prenumele personal angajatului angajatului PI Prisacaru Inga
30
RD SA SD SM VD VI Problema 12: Compania Asito Astra Auto Lada Avon Basarabia Bizpro Cascad Floarea Floribel InLac Knauf Luck Oil Patria Petrom Tirex TransCom Tutun Ind Vitanta Zorile Problema 13: Nume Bucataru Nume Bucur Cozma Dodon Dutca Florea Frumosu Gomoja Graur Grosu Grosu Grosu Harea Lisnic Lungu
Datoria 26 000.00 14 780.00 7 500.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 5 000.00 6 000.00 1 000.00 800.00 22 890.00 Prenume Constantin Prenume Nicolae Ion Elena Radion Nicoleta Emilia Ilie Teodor Mihai Leonid Corina Igor Vladimir Alexandru Functia contabil Functia manager reprezentant contabil reprezentant reprezentant contabil reprezentant reprezentant sef reprezentant reprezentant manager manager sef adjunc
31
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 Compania Datoria Cascad 12 300.00 Avon 12 000.00 Auto Lada 7 500.00 TransCom 6 000.00 Tirex 5 000.00 Tutun Ind 1 000.00 InLac 1 000.00 Vitanta 800.00 Floribel 600.00 Patria 500.00 Basarabia 0.00 Knauf 0.00 Floarea 0.00 Problema 15: Nume Prenume Functia Grosu Corina reprezentant Cozma Ion reprezentant Grosu Leonid reprezentant Florea Nicoleta reprezentant Surdu Mihaiela reprezentant Harea Igor manager Bucur Nicolae manager Prisacaru Inga reprezentant Spada Doru manager Lisnic Vladimir manager ema 16:
32
Nume Prenume Nanu Vasile Lungu Alexandru Grosu Mihai Vrabie Ion Mutu Livia Nume Prenume Frumosu Emilia Rusu Dorina Graur Teodor Mutu Sorina Dodon Elena ema 17: Nume Prenume Lungu Alexandru Grosu Mihai Vieru Dorin Nanu Vasile Frumosu Emilia Mutu Livia Dutca Radion Dodon Elena Surdu Mihaela Grosu Leonid Problema 18:
Functia reprezentant sef adjunc sef contabil manager Functia contabil reprezentant reprezentant reprezentant contabil Functia sef adjunc sef manager reprezentant contabil manager reprezentant contabil reprezentant reprezentant Compan ia Petrom
Problema 19: Nume Prenume Codul personal Grosu Corina GC Problema 20: Descriere Pret Monitor LG 17" 100.00 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 Descriere ____________________ Tastiera Logitech alba Monitor Samsung 17" Televizor Alfa 51cm
Functia reprezentant
" F il t r
33
u 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
Problema 27:
Problema 26:
34
Compania Auto Lada Basarabia Floribel Floarea InLac Knauf Patria TransCom Tirex Tutun Ind Vitanta Compania Asito Astra Avon Bizpro Cascad Luck Oil Petrom Zorile Compania Auto Lada Basarabia Floribel Floarea InLac Knauf Patria TransCom
35
Problema 25:
Compania Tirex Tutun Ind Vitanta Problema 2: Compania Basarabia Floarea Knauf Problema 29: Nume Bucataru Dodon Frumosu Grosu Lungu Speriatu Vrabie Prenume Constantin Elena Emilia Mihai Alexandru Ana Ion Functia contabil contabil contabil sef sef adjunc contabil contabil Functia manager reprezentant manager manager manager reprezentant manager
Problema : Nume Prenume Bucur Nicolae Graur Teodor Harea Igor Mutu Livia Spada Doru Surdu Mihaela Vieru Dorin Problema 31:
Virsta 27 35 25 29 25 32
Localitatea Beltsy Cahul Edinets Glodeni Localitatea Rezina Soroca Problema 32: Localitatea Beltsy Kishinew Edinets Glodeni Orhei
36
Problema 33:
Problema 34:
Prenum e Dorin
Nume Vrabie Ion Vieru
Problema 35:
Nume Prenume Cozma Ion Dutca Radion Florea Nicoleta Gomoja Ilie Harea Igor Spada Doru Nume Prenume Cozma Ion Dodon Elena Frumosu Emilia Florea Nicoleta Grosu Corina Gomoja Ilie Grosu Leonid Grosu Mihai Problema 37: Nume Prenume Grosu Corina
Virsta 19
Problema 39:
37
Problema 25:
Problema 40:
Rezultat ______25 Rezultat _______3 Rezultat ______ 1J_ Rezultat Rezultat ________6_ _____________ Rezultat _______12_ ________________ Rezultat 186 420.00 Descriere____________ Televizor Sony 72cm
Problema 44:
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 Numarul de localitati centru 3 nord 5 Sud 1
38
Problema 55:
Rezultat 9 811.58 ______________ Rezultat 20 502.50 _____________ Rezultat _______15_ Rezultat
Problema 56:
Problema 57:
Problema 58:
________8_
39
Problema 25:
Regiune a nord
Problema 63 : ____________ Regiunea
Problema 64: CompaniaNumePrenumePatriaDutcaRadio nInLacGomojaIlieVitantaGomojaIlieCasca dGomojaIlieZorileGrauTeodorAvonGrosu CorinaBasarabiaGrosuCorinaFloribelGrosu LeonidFloareaGrosuLeonidTutun IndGrosuLeonidTransComMutuSorinaLuc k OilNanuVasileAuto LadaNanuVasilePetromNanuVasileTirexN anuVasile
sud______
40
Problema 65:
Compania Nume Asito Prisacaru Astra Prisacaru Bizpro Prisacaru Floribel Grosu Floarea Grosu Knauf Prisacaru Tutun Ind Grosu Problema 66: Nume Prenume Bucataru Constantin Bucur Nicolae Cozma Ion Dodon Elena Dutca Radion Florea Nicoleta Frumosu Emilia Gomoja Ilie Graur Teodor Grosu Corina Grosu Leonid Grosu Mihai Harea Igor Lisnic Vladimir Lungu Alexandru Mutu Livia Mutu Sorina
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
41
Problema 25:
Problema DescriereCantitatea totalaCD-R Benq 68: 700MB24CD-RW Benq 700MB22DVD Sony 502Filtru Sven 220V9Monitor Samsung 15"3Monitor Samsung 17"15Monitor Samsung 21"11Monitor Samtron 15"13Mouse Genius optic2Mouse Logitech optic5Procesor Celeron 200021
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 ma 67:IonRezin a 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
42
DescriereCantitatea totalaProcesor Pentium 414Tastiera Logitech alba20Tastiera Logitech neagra28Telefon Siemens A555Televizor Alfa 51cm11Televizor JVS 54cm13Televizor Polar 54cm8Televizor Sony 72cm4
Problema 69:
G r a u r TeodorreprezentantDutcaRadionreprezentantProble ma 70: Nume Prenume Suma planificata Bucur Nicolae 28 000.00 Harea Igor 22 000.00 Lisnic Vladimir 351.00 Spada Doru 18 000.00 Problema 71: 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
reprezentant
43
Problema 74:
Data
comenzii
Problema NumePrenumeFunctiaLocalitateaFloreaNicoletareprezenta 75: ntBeltsyProblema 76:NumePrenumeFunctiaLocalitateaGomojaIliereprezentan tCahulProblema 77:NumePrenumeData angajariiFunctiaBucataruConstantin18.01.2001contabilBuc urNicolae31.01.2001managerGraurTeodor18.08.2004repre zentant
Problema 78:
24.05.2005 ~
44
Problema 74:
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 Data comenzii 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
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 Suma de bani 256.50 301.20 1 430.00 1 125.00 0.40 1 500.00 106.50 8.00 328.50 26.25 0.50 1 200.00 1.00 390.00 284.00 560.00
45
Problema 74:
12.12.2005 27.00 Problema 84: Compania Numarul de tranzacii 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 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
46
Problema 74:
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: _______________
NumePrenumeSuma planificataSuma acumulataMutuSorina3 Problema 500.0026.75NanuVasile4 500.00473.50PrisacaruInga2 750.002 NumePrenumeSuma planificataSuma 93: 243.80RusuDorina3 500.00309.20SpadaDoru18 000.001 acumulataBucataruConstantin0.00803.20BucurNicolae28 231.75SurduMihaiela20 000.00170.75 000.001 416.75CozmaIon2 000.001 900.00DutcaRadion3 250.001 126.50FloreaNicoleta2 500.002 970.00GomojaIlie3 250.00599.95GrosuCorina1 900.001 605.40GrosuLeonid2 500.0027.75HareaIgor22 Problema 000.00191.75LisnicVladimir351.00351.00MutuLivia15 000.001 94: 437.50
Compania Basarabia Prenume Diferenta Constantin -803.20 Nicolae 26 583.25 Ion 100.00 Radion 2 123.50 Nicoleta -470.00 Ilie 2 650.05 Corina 294.6 Leonid 2 472.25
47
Problema : 96 NumePrenumeFunctiaBucurNicolaemanag er
Problema 74:
Harea Lisnic Mutu Mutu Nanu Prisacaru Rusu Spada Surdu ema 95: Nume Bucataru Florea
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
Problema 97:
Functia manager 1
48
Problema 74:
ANEX
PRODUSE Cod-produsDescrierePretExist1Monitor LG 17"100.00True2Monitor Samsung 15"50.00False3Televizor JVS 54cm280.00False4Procesor Pentium 4130.00True5Procesor Celeron 2000125.00True6Mouse Genius optic4.00False7Mouse Logitech optic5.00True8Televizor Sony 72cm485.00False9DVD Sony 5075.00False10DVD Sony 3216-32135.00True11CD-R Benq 700MB0.10True12CD-RW Benq 700MB0.25True13Tastiera Logitech alba6.75True14Tastiera Logitech neagra9.75False15Monitor Samsung 17"85.50True16Monitor Samsung 21"109.50False17Monitor Samtron 15"35.50False18Televizor Alfa 51cm100.40True19Televizor Polar 54cm200.00False20Filtru Sven 220V3.75True21Telefon Siemens A5585.00True
49
COMPANI Cod-companieCompaniaReprezentantul I companieiDatoriaALAuto LadaNV7 500.00ASAsitoPI26 000.00ATAstraPI14 780.00AVAvonGC12 000.00BABasarabiaGC0.00BIBizproPI13 050.00CACascadGI12 300.00FBFloribelGL600.00FLFloareaGL0.00ILInLacGI1 000.00KNKnaufPI0.00LOLuck OilNV13 000.00PAPatriaDR500.00PEPetromNV50 000.00TCTransComMS6 000.00TITirexNV5 000.00TUTutun IndGL1 000.00VTVitantaGI800.00ZOZorileGT22 890.00
50
ANGAJAT I
>FunctiaCodul oficiuluiData angajariiSuma planificataBCBucataruConstantin31contabilSR18.01.20010BNBucurNicol ae27managerSR31.01.200128 000CICozmaIon20reprezentantOR17.11.20012 000DEDodonElena34contabilED20.02.20000DRDutcaRadion33reprezenta ntGL12.12.19993 250FEFrumosuEmilia37contabilED12.02.19980FNFloreaNicoleta23reprez entantBL13.06.20002 500GCGrosuCorina19reprezentantRZ04.04.20001 900GIGomojaIlie32reprezentantCH13.07.20053 250GLGrosuLeonid23reprezentantED28.03.20002 500GMGrosuMihai42sefC07.02.19980GTGraurTeodor35reprezentantSR1 8.08.200435 000HIHareaIgor25managerCH30.03.200322 000LALunguAlexandru43sef adjuncC07.02.19980LVLisnicVladimir29managerOR13.09.2001351MLM utuLivia38managerBL09.02.199915 000MSMutuSorina35reprezentantUN06.04.20043 500NVNanuVasile45reprezentantC09.02.19984 500PIPrisacaruInga27reprezentantUN18.03.20012 750RDRusuDorina35reprezentantOR18.09.20013 500SASperiatuAna31contabilGL15.01.20030SDSpadaDoru29managerRZ 12.01.200318 000SMSurduMihaiela25reprezentantBL12.03.200020 000VDVieruDorin32managerC08.02.199880 000VIVrabieIon42contabilRZ18.10.20020
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 Codul clientului BI IL VT ZO VT TI CA VT PE LO TI TI TRANZACTI I Codul Codul vinzatorului produsului NV 7 PI 15 HI 14 GI 12 BN 15 GL 12 GI 11 BN 14 SM 12 SM 2 FN 21 NV 13 Cantitatea
5 4 12 3 8 3 2 9 2 3 2 2
51
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 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
AL FL TI FL VT AS PA AT FL AS PE TC ZO AT AV AT PA FB Codul clientului ZO TI FB ZO LO PA CA VT KN PA AT VT PE PA PE CA IL TI
LV PI SD PI GI GC SD DR SM LV BC ML BN FN CI GC HI PI
17 11 14 8 14 8 12 11 13 3 18 20 21 3 19 9 13 16
2 3 3 1 4 3 10 5 3 1 8 2 3 10 2 2 11 8 Cantitatea 5 3 3 11 9 4 12 3 2 3 5 7 6 4 3 8 4 2
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.
52
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.
53