You are on page 1of 16

Dispunei de baza de date VANZARI cu tabelele CLIENTI(Codcl, Nume, Adresa, Zona),

AGENTI(Codag, Nume, Salbaza, Zona) i COMENZI(Nrcom, Data, Codcl, Codag, Valoare).


Analizai atributele din fiecare tabe
Clic dreapta n panoul din stnga
primar i alegerea opiunii Design View.
Dac cheia primar ar fi compus (avnd mai
apoi, dac urmtorul cmp din componen nu este vecin cu cel anterior, se ine tasta
apsat pentru a putea selecta atribute ne
Definii legaturile dintre tabele
Clic pe Database Tools Relationships
cheia primar din tabela printe (de ex.
ului i se ajunge peste tabela-copil, eliberndu
strin (de ex. CODAG din COMENZI).
regul, primele dou restricii
Cascade Update Related Fields, pentru modificarea n cascad, de la printe la copil
La fel se face i cu cealalt legtur ntre

1
Dac n panoul cu obiectele, din stnga, n banda de sus, scrie
All Access Objects, pentru a putea vedea ulterior i alte obiecte, dect tabelele (interogri, formulare, rapoarte etc.)
1
Lucrare practic nr. 1
de baza de date VANZARI cu tabelele CLIENTI(Codcl, Nume, Adresa, Zona),
AGENTI(Codag, Nume, Salbaza, Zona) i COMENZI(Nrcom, Data, Codcl, Codag, Valoare).
i atributele din fiecare tabel i stabilii cheile primare corespunz
Clic dreapta n panoul din stnga
1
, unde apar tabelele, pe tabela pentru care vrem s stabilim cheia
Design View.

Dac cheia primar ar fi compus (avnd mai multe cmpuri n coninut), se selecteaz primul atribut,
apoi, dac urmtorul cmp din componen nu este vecin cu cel anterior, se ine tasta
apsat pentru a putea selecta atribute nenvecinate
i legaturile dintre tabele i aplicai restriciile rerereniale.
Relationships, se adaug toate tabelele. Pentru a face legtura, se selecteaz
cheia primar din tabela printe (de ex. CODAG din AGENI), se ine apsat butonul stnga al mouse
copil, eliberndu-se butonul mouse-ului pe cmpul ce reprezint cheia
COMENZI). n formularul care apare (Edit Relationships)
(Enforce Referential Integrity, pentru a nu avea copii fr prini
pentru modificarea n cascad, de la printe la copil

La fel se face i cu cealalt legtur ntre CLIENTI i COMEZI.
Dac n panoul cu obiectele, din stnga, n banda de sus, scrie Tables, se d clic pe acea band i
pentru a putea vedea ulterior i alte obiecte, dect tabelele (interogri, formulare, rapoarte etc.)
de baza de date VANZARI cu tabelele CLIENTI(Codcl, Nume, Adresa, Zona),
AGENTI(Codag, Nume, Salbaza, Zona) i COMENZI(Nrcom, Data, Codcl, Codag, Valoare).
corespunztoare acestora.
, unde apar tabelele, pe tabela pentru care vrem s stabilim cheia


multe cmpuri n coninut), se selecteaz primul atribut,
apoi, dac urmtorul cmp din componen nu este vecin cu cel anterior, se ine tasta Control (Ctrl)

, se adaug toate tabelele. Pentru a face legtura, se selecteaz
se ine apsat butonul stnga al mouse-
ului pe cmpul ce reprezint cheia
(Edit Relationships) se bifeaz, de
vea copii fr prini i
pentru modificarea n cascad, de la printe la copil).
, se d clic pe acea band i se alege opiunea
pentru a putea vedea ulterior i alte obiecte, dect tabelele (interogri, formulare, rapoarte etc.)
2
Definii o regul de validare pentru data comenzii (data comenzii nu poate depi data
curent).

Atenie la cmpul pe care ne plasm, cnd scriem regula de validare. La deschiderea tabelei, cmpul
implicit este primul de sus, dar noi avem nevoi, n acest exemplu, de al doilea (data).
Funcia Date are obligatoriu dup ea, paranteze rotunde, deci Date().
S se adauge comanda nr. 211 din 11 mai 2010, pentru un client nou (Florio SRL, din
zona Nicolina, pentru care nu se cunoate adresa) care va avea codul 550. Comanda a
fost preluat de agentul A3 i are o valoare de 58 lei
2
.
Varianta simpl
Se introduc valorile, direct n tabele, avnd n vedere s se populeze nti tabela-printe (CLIENTI),
apoi tabela-copil (COMENZI).
CLIENI

COMENZI


2
Pentru a fi sigur c n panoul cu obiectele bazei de date se vor vedea toate, se alege, n loc de Tables sau All Tables, opiunea
All Access Objects

3
Varianta cu APPEND QUERY
Din meniul Create Query Design se nchide formularul Show Table, fr a aduga vreo tabel,
apsndu-se direct butonul Close. Din meniul Design se alege opiunea Append

. Va aprea un

formular, de unde vom alege tabela CLIENTI. Asta va face ca, ulterior s remarcm, n formularul unde
se configureaz interogarea, c a aprut un rnd nou (Append To).


La apsarea butonului RUN (din meniul Design), va aprea un mesaj de avertizare
3
c a fost adugat o
nou nregistrare. Dac mai apare i vreun alt mesaj, sigur este vreo problem care va mpiedica
nregistrarea.
La fel se lucreaz i pentru tabela-copil, COMENZI.

Varianta SQL
Din meniul Create Query Design nchidere formular Show Table apsare pe butonul View din
meniul Design pentru a intra n modul SQL
4
.
o Creare client
INSERT INTO clienti ( codcl, nume, zona )
SELECT 550, "Florio SRL", 'Nicolina'
Se d RUN, apoi se nchide i se repet paii anteriori
o Adugare comand
INSERT INTO comenzi ( nrcom, data, valoare, codcl, codag )
SELECT 211, #5/11/2010#, 58, 550, 'A3'

3
Dac nu apare aa ceva, este posibil ca, la deschiderea bazei de date s fi nchis bara Security Warning, fr a apsa butonul
Options i a alege Enable.

4
De dorit este, de regul, s se tearg acel punct i virgul, de dup SELECT, mai mult ncurcnd, dect s ajute.
4
S se afieze pe ecran o list a comenzilor din ziua de 9 mai 2010, n ordinea zonelor.
Varianta cu Design View Varianta SQL

SELECT nrcom, data, zona
FROM clienti Cl INNER JOIN comenzi C ON Cl.codcl = C.codcl
WHERE data=#5/9/2010#
ORDER BY zona
Calculai totalul comenzilor pe zone.
Dup adugarea tabelelor, se alege opiunea Totals (cea cu simbolul ) din meniul Design. Va aprea, n
formular, un rnd special, Total.
Varianta cu Design View Varianta SQL

SELECT ZONA, Sum(valoare) AS Total_pe_zone
FROM clienti INNER JOIN comenzi ON clienti.codcl = comenzi.codcl
GROUP BY zona
ORDER BY zona

S se modifice salariul de baz al agentului cu codul A1 la 460 lei.
Varianta simpl
Se face modificarea direct n tabel
Varianta cu UPDATE QUERY Varianta SQL
Din meniul Create Query Design adugare tabela AGENTI. UPDATE agenti SET SALBAZA = 460
WHERE CODAG="A1"

Din meniul Design UPDATE


5
Sa se afieze comenzile cu valoare mai mic de 50 lei din zonele Pcurari sau Bucium
(Nrcom, Codcl, Valoare).
Varianta cu Design View
5
Varianta SQL

SELECT nrcom, Cl.codcl, valoare, zona
FROM clienti Cl INNER JOIN comenzi C ON Cl.codcl = C.codcl
WHERE valoare<50
AND (zona="PACURARI" Or zona="BUCIUM")

S se realizeze un raport al comenzilor grupate dup agentul care a preluat comanda
(Nrcom, Data, Valoare). n antetul de grup se va afia numele agentului, iar la sfritul
grupului valoarea total a comenzilor fiecrui agent.

Se aleg, din tabela COMENZI, cmpurile solicitate, apoi, n aceeai pagin a formularului, se adaug
tabela AGENTI, de unde se alege cmpul NUME, dup care se d Next.


5
O alt variant de a scrie criteriile

6


n rest se folosete dificila tehnic a Next-urilor.
Definii un formular pentru vizualizarea/ actualizarea comenzilor.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela COMENZI, apoi, n meniul Create,
se apas opiunea Form.
Lucrare practic nr. 2
Dispunei de o baz de date Credite_PF n care o banc evideniaz creditele ctre
clienti persoane fizice. Sunt cuprinse tabelele CLIENTI(Codcl, Nume, Adresa, Localit),
CONTRACTE(Nrcontract, Codcl, Data, Valcredit, Ratadob, Perioada),
RESTITUIRI(Nrcontract, Dataplata, Sumaplatita).
Analizai atributele din fiecare tabel i stabilii cheile primare corespunztoare acestora.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii legturile dintre tabele i aplicai restriciile refereniale.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.

S se adauge un contract pentru un client nou ce va avea codul 211: contractul nr.
1255 din 15 mai 2010, pentru un credit n sum de 50 milioane lei, pe 5 ani, cu o rat a
dobnzii de 25%. Clientul se numete lonescu Florin, din Iai, str. Izvor nr. 22.
Varianta simpl
Se introduc valorile, direct n tabele, avnd n vedere s se populeze nti tabela-printe (CLIENTI),
apoi tabela-copil (CONTRACTE).

7

Varianta cu APPEND QUERY
A se vedea explicaiile pentru cerina similar, de la prima lucrare.


Varianta SQL
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
o Creare client
INSERT INTO clienti ( codcl, nume, localit, adresa )
SELECT 211, 'lonescu Florin', 'IASI', 'Str. Izvor nr. 22'
o Adugare contract
INSERT INTO contracte ( nrcontract, data, valcredit, perioada, ratadob, codcl )
SELECT 1255, #5/15/2010#, 50000000, 5, 0.25, 211
Scriei interogarea SQL pentru a afia o list a contractelor la care rata dobnzii este de
65% i valoarea creditului mai mare sau egal cu 5000 lei (numr contract, data,
valoare).
SELECT nrcontract, data, valcredit
FROM contracte
WHERE valcredit>=5000 AND ratadob=0.65
Scriei interogarea SQL pentru a obine situaia contractelor pe localiti (localitate,
numr de contracte, total valoare credite).
SELECT localit, COUNT(nrcontract), SUM(valcredit)
FROM clienti INNER JOIN contracte ON clienti.codcl = contracte.codcl
GROUP BY localit
8
S se afieze pe ecran toate restituirile din ziua de 1 martie 2010.
Varianta cu Design View Varianta SQL

SELECT nrcontract, dataplata, sumaplatit
FROM restituiri
WHERE dataplata=#3/1/2010#
S se ntocmeasc un raport care s cuprind pentru fiecare contract sumele pltite
(data i suma platit), precum i suma total restituit.


n rest, se poate merge cu clasicul NEXT.
Realizai un formular pentru vizualizarea/ actualizarea nomenclatorului de clieni.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela CLIENTI, apoi, n meniul Create, se
apas opiunea Form.
9
Lucrare practic nr. 3
Dispunei de o baz de date VANZARI cu tabelele CLENTI(Codcl, Numecl, Adresa,
Zona), AGENTI(Codag, Numeag, Salbaza, Zona) i COMENZI(Nrcom, Data, Codcl, Codag,
Valoare).
Analizai atributele din fiecare tabel i stabilii cheile primare corespunztoare acestora.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii legturile dintre tabele i aplicai restriciile refereniale.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii o regul de validare pentru atributul Codcl (Codcl [200,1999]).

n urma restructurrilor au fost concediai 2 ageni: A7 i A9. S se tearg nregistrrile
corespunztoare.
Varianta simpl
Se terg, pur i simplu,nregistrrile solicitate direct din tabel. n cazul n care apare un mesaj, la
tergere, nseamn c exist nregistrri pentru acei ageni n tabela copil
Varianta cu Design View Varianta SQL

DELETE codag
FROM agenti
WHERE codag="A7" OR codag="A9"

10
S se afieze pe ecran o list a comenzilor agentului A1, n ordinea descresctoare a
valorii.
Varianta cu Design View Varianta SQL

SELECT nrcom, codag, valoare
FROM comenzi
WHERE codag="A1"
ORDER BY valoare DESC

S se afieze prima comand a clientului 330.
Varianta cu Design View Varianta SQL

SELECT codcl, FIRST(data)
FROM comenzi
GROUP BY codcl
HAVING codcl=330

Varianta mai simpl
6

SELECT First(data)
FROM comenzi
WHERE codcl=330
Scriei interogarea SQL pentru a afia o list a comenzilor cu valoare mai mare de 250
lei, din zona Centru (Nrcom, Numecl, Valoare).
SELECT nrcom, nume, valoare
FROM clienti AS Cl INNER JOIN comenzi AS C ON Cl.codcl = C.codcl
WHERE valoare>=250 AND zona="CENTRU"
S se realizeze un raport al comenzilor n ordinea descresctoare a valorii (Nrcom, Data,
Codag, Valoare). La sfrit se va afia valoarea total a comenzilor.


6
Este de remarcat c, dac se face grupare, condiia nu se mai pune cu WHERE, ci cu HAVING
11


n cazul n care se dorete mutarea cmpului valoare, la final (cum ar fi mai elegant), se apas pe cmpul
VALOARE, n zona Detail (se va portocaliza), apoi, ducnd mouse-ul, n colul din dreapta jos a acestui
textbox, el va lua forma din imaginea de mai sus. innd apsat butonul stnga, se trage spre dreapta. Dac
e fcut bine tragerea, la grania ntre cmpuri va aprea o linie vertical portocalie, care va sri, ntre
cmpuri, pn la final, unde vom elibera mouse-ul.
12

Din meniul Design se d clic pe butonul TextBox, apoi se coboar n Report Footer, unde se d clic cam pe
unde este acea stelu. Vor aprea dou obiecte:
- Label cel pe care scrie Text12 i care, prin clic pe el, poate fi redenumit cu expresia Valoare
total,
- TextBox cel pe care scrie Unbound i n care vom face calculul. Varianta cea mai comod este de
a da clic n interiorul ei, disprnd textul i s scriem =Sum([valoare]).
Mergnd n meniul Design sau Home, pe butonul View i alegnd opiunea Report View sau Print Preview,
va aprea rezultatul final. Aceast aciune poate fi realizat din Design View sau din Layout View.
Desigur, cmpurile aferente totalului (Label i TextBox) mai pot fi ajustate stnga-dreapta ca s se
suprapun locaiei cmpului Valoare, din Detail.

Realizai un formular pentru vizualizarea/ actualizarea nomenclatorului de clieni.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela Clieni, apoi, n meniul Create, se
apas opiunea Form.
Lucrare practic nr. 4
Dispunei de o baz de date CREDITE_PF n care o banc evideniaz creditele
ctre clieni persoane fizice. Sunt cuprinse tabelele CLIENTI(Codcl, Nume, Adresa, Localit),
CONTRACTE(Nrcontract, Codcl, Data, Valcredit, Ratadob, Perioada),
RESTITUIRI(Nrcontract, Dataplata, Sumaplatita).
Analizai atributele din fiecare tabel i stabilii cheile primare corespunztoare acestora.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
13
Definii legturile dintre tabele i aplicai restriciile refereniale.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii o regul de validare pentru atributul Codcl (Codcl [100,999]).

n condiiile n care contractul 1200 este anulat, s se tearg acest contract din tabela
CONTRACTE i toate ncasrile corespunztoare din tabela RESTITUIRI.
Varianta simpl
Se va terge, pur i simplu, nregistrarea din tabel, avnd n vedere ca s se tearg nti cea din tabela-
copil (RESTITUIRI), apoi din tabela-printe (CONTRACTE).
Varianta DELETE QUERY
Din meniul Create Query Design n formularul Show Table, se adaug tabela RESTITUIRI (tabela-
copil). Din meniul Design se alege opiunea Delete . Asta va face ca, n formularul unde se

configureaz interogarea, s apar un rnd nou (Detele). Se completeaz ca n figura de mai jos, apoi se
reia procesul identic i pentru tabela-printe CONTRACTE.

nti RESTITUIRI , apoi CONTRACTE
Varianta SQL
o tergere restituiri (din tabela copil)
DELETE nrcontract
FROM restituiri
WHERE nrcontract=1200
o tergere contract (din tabela printe)
DELETE NRCONTRACT
FROM contracte
WHERE NRCONTRACT=1200
14
Scriei interogarea SQL pentru a afia o list a contractelor cu o valoare mai mare sau
egal cu 5000 lei, ncheiate n luna ianuarie (numr contract, data, valoare).
SELECT nrcontract, data, valcredit
FROM contracte
WHERE Month([data])=1 AND valcredit>=5000
S se afieze pe ecran toate restituirile pentru contractul nr. 1230.
Varianta cu Design View Varianta SQL

SELECT nrcontract, sumaplatit
FROM restituiri
WHERE nrcontract=1230

S se ntocmeasc un raport care s cuprind restituirile pentru fiecare contract
(identificat n antetul de grup prin numr i dat), indicnd data i suma platit, iar la
sfrit totalul fiecrui contract.


Apoi, se poate merge cu Next, pn la final.
15
Realizati un formular pentru vizualizarea / actualizarea nomenclatorului de clieni.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela CLIENTI, apoi, n meniul Create,
se apas opiunea Form.
Lucrare practic nr. 5
Dispunei de o baz de date Credite_PF n care o banc evideniaz creditele ctre
clieni persoane fizice. Sunt cuprinse tabelele CLIENTI(Codcl, Nume, Adresa, Localit),
CONTRACTE(Nrcontract, Codcl, Data, Valcredit, Ratadob, Perioada),
RESTITUIRl(Nrcontract, Dataplata, Sumaplatita).
Analizai atributele din fiecare tabel i stabilii cheile primare corespunztoare acestora.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii legturile dintre tabele i aplicai restriciile refereniale.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii o regul de validare pentru atributul Codcl (Codcl [150,1999]).
A se vedea imaginea pentru cerina similar, de la lucrare 4.
S se nregistreze restituirea unei rate la contractul 1198, n sum de 350 lei, pe data
de 4 mai 2010.
Varianta simpl
Se introduc valorile, direct n tabel. Este bine, n prealabil, s se verifice n tabela-printe
(CONTRACTE), dac exist contractul cu nr. 1198.

Varianta cu APPEND QUERY
Din meniul Create Query Design se nchide formularul Show Table, fr a aduga vreo tabel,
apsndu-se direct butonul Close. Din meniul Design se alege opiunea Append
. Va aprea un
formular, de unde vom alege tabela RESTITUIRI. Asta va face ca, ulterior s remarcm, n formularul
unde se configureaz interogarea, c a aprut un rnd nou (Append To).

Varianta SQL
INSERT INTO restituiri ( nrcontract, dataplata, sumaplatit )
SELECT 1198, #5/4/2010#, 350
Scriei interogarea SQL pentru a afia o list a contractelor la care rata dobnzii este de
65% i perioada mai mic de 5 ani (numr contract, data, perioada, valoare).
SELECT nrcontract, data, perioada, valcredit, ratadob
FROM contracte
WHERE perioada<=5 AND ratadob=0.65
16
S se afieze pe ecran toate restituirile la contractul 1198 (numr contract, data plii,
suma pltit).
Varianta cu Design View Varianta SQL

SELECT nrcontract, dataplata, sumaplatit
FROM restituiri
WHERE nrcontract=1198

S se ntocmeasc un raport care s cuprind datele despre contracte i restituirile
aferente. Pentru fiecare contract se specific n antetul de grup numrul, data ncheierii,
valoarea i perioada. Raportul va cuprinde sumele pltite (data i suma platit).


Apoi se poate merge cu ncredere, pe Calea Next-ului, pn la final.
Realizai un formular pentru vizualizarea/ actualizarea nomenclatorului de clieni.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela CLIENTI, apoi, n meniul Create,
se apas opiunea Form.

You might also like