Sunteți pe pagina 1din 19

TEMA 1

1. Valori implicite:
- Intram in echer si la valoare implicita introducem..
- Anul curent vom folosi Year(Data())
- Data zilei curente vom folosi Date()
2. Restrictii la nivel de atribut:
IN TAB CARTI:
- Intram in echer si la regula de validare + text validare
a. Literele din atributul Cota sa fie obligatoriu majuscule(toate): folosim expresia:
StrComp(UCase([Cota]);[Cota];0)=0
Introduceti cota cartii cu MAJUSCULE!!!
b. Prima litera din Titlu sa fie cu majuscula(numai prima litera): folosim expresia:
StrComp(LEFT(UCase([titlu]);1);LEFT([titlu];1);0)=0
Titlul cartii trebuie sa inceapa cu majuscula!!!
c. Vol este o cifra cuprinsa intre 1 si 5: folosim expresia
[Vol]>0 AND [Vol]<=5 SAU [Vol] BETWEEN 1 AND 5
Nr volumului trebuie sa fie cuprins intre 1 si 5!!!
d. Pret este un numar intreg pozitiv: folosim expresia:
[Pret]>0 Pretul trebuie sa fie pozitiv!!!

IN TAB CITITORI:

e. Literele din valoarea atributului NumePrenume sunt, obligatoriu, majuscule:


StrComp(UCase([NumePrenume]);[NumePrenume];0)=0
Numele si prenumele trebuie introduse cu majuscule!!!

IN TAB IMPRUMUT:

f. Per poate fi una din valorile 1,3,7,14 si 21: folosim expresia.


[Per] IN (1,3,7,14,21)/Nr zilelor de imprumut trebuie sa fie o valoare dintre 1,3,7,14,21!!!

3. Restrictii la nivel de inregistrare:

- Deschidem tabelul in Design View


- Activarea ferestrei Property Sheet(in cazul in care nu apare o gasesc in design, show hide)
- In fereastra Property Sheet, avem rubrica Regula de Validare/Text validare

a. In tabela CARTI anul publicarii (An_pub) trebuie sa fie <= cu anul extras din atributul
Data_in: folosim expresia
[An_pub]<=Year(Data_in)/Anul publicarii nu este corect!!!
b. In tabela IMPRUMUT perioada de imprumut (Per) va fi de 1zi in luna decembrie a fiecarui
an, ca urmare a operatiilor de inventariere, vom folosi expresia:
Ilf(Month([Data_impr)<>12;True;Ilf([Per]=1 or [Per]=3; TRUE;FALSE))
Este luna decembrie: Modificati durata imprumutului la 1 sau 3zile!!!
4. Cheie primara/alternativa(unica):
- Prima data se verifica sa nu fie chei primare
a. IN TAB CARTI:
- Nr_inv este cheia primara
- Cota este cheia alternativa(unica): intram la Indexat si punem Da, fara dubluri
b. IN TAB CITITORI:
- Cod_cit este cheia primara
- CNP este cheia alternativa(unica)
c. IN TAB EDITURI:
- Cod_editura este cheia primara
d. IN TAB IMPRUMUT:
- Cheia primara este combinatia(Cod_cit;Nr_inv, Data_impr): tinem apasat tasta CTRL, cu
tasta SHIFT apasata le selectam pe toate 3 si selectam cheia primara.

5. Restrictii referentiale:

- Intre tabelele CARTI(copil) si EDITURI(parinte), atributul de legatura este Cod_editura


- Intre tabelele IMPRUMUT(copil) si CARTI(parinte), atributul de legatura este Nr_inv
- Intre tabelele IMPRUMUT(copil) si CITITORI(parinte), atributul de legatura este Cod_cit

TEMA 2

1. Folosind o varianta de lucru DATASHEET VIEW, sa se procedeze la realizarea urmatoarelor


operatiuni:
-deschidem tabela CITITORI
-Pentru a putea aduce modificari inregistrarilor copil din tabela IMPRUMUT, este necesar ca
tabela CITITORI sa fie deschisa in modul de lucru DATASHEET VIEW

a. Cititoarea Acatrinei Gabriela, cu codul cititor 2117, returneaza, in data de 21.12.2016, cartea
cu codul 12144
REZOLVARE:
- In tabela CITITORI, dam click pe + din fata codului cititor pentru 2117
- Ne pozitionam pe linia cartii cu codul 12144 imprumutata de cititoarea noastra
- Completam data returnarii
Nr_inv Data_impr Per Data_retur

12144 18.12.2016 1 21.12.2016

b. Cititoarea Zaharia Maria, cu codul cititor 2110, returneaza, in data de 28.02.2017, urmatoarele
carti: codul 12153/codul 12154
REZOLVARE:
- Localizarea codului de cititor 2110 in tabela CITITORI
- Dublu click pe semnul + din fata codului 2110
- Localizarea pointerului pe Data_retur corespunzatoare cartii cu codul 12153
- Introducerea datei de returnare 28.02.2017
- Localizarea pointerului pe Data_retur corespunzatoare cartii cu codul 12154
- Introducerea datei de returnare 28.02.2017
Nr_inv Data_impr Per Data_retur
12153 06.01.2017 14 28.02.2017
12154 05.02.2017 14 28.02.2017
12157 21.12.2010 3

c. In data de 03.03.2017, cititorul Anghel George, cu codul cititor 2122, returneaza cartea cu
codul 12155
- Localizarea codului de cititor 2122 in tabela CITITORI
- Dublu click pe semnul + din fata codului 2122
- Localizarea pointerului pe Data_retur corespunzatoare cartii cu codul 12155
- Introducerea datei de returnare 03.03.2017
Nr_inv Data_impr Per Data_retur
12155 16.12.2016 3 03.03.2017
26.03.2017 14

d. Cititoarea Anghelescu Ioana, cu codul cititor 2114, imprumuta in data de 07.03.2017, pentru
21 de zile, urmatoarele carti:
*Ion cu codul 12144
*Morometii cu codul 12148
*Despre bucurie cu codul 12140
- identificarea in tabela CITITORI, a cititoarei Anghelescu Ioana, cu codul cititor 2114
- click pe semnul + din fata codului 2114 si se va intra in tabela copil IMPRUMUT asociata tabelei
CITITORI
Nr_inv Data_impr Per Data_retur
12144 07.03.2017 21
12148 07.03.2017 21
12140 07.03.2017 21
26.03.2017 14

2. In vederea editarilor pe grupuri de inregistrari, se cere sa se afiseze intr-o fereastra de lucru, pe


rand, pentru fiecare tabela:

IN TABELA CARTI:

a) Toate cartile tiparite dupa 2003, inclusiv:

-deschidem tabelul CARTI in modul de lucru DATASHEET VIEW


-cursorul in coloana care va fi sursa a filtrarii – An_pub
-home-sort&filter
-filtrare
-deselectam ‘’select all…’’
-selectam anii: 2003,2004,2005,2006,2007 si 2008
-ok
b) Toate cartile care contin in cota particula IT:

- Ne pozitionam pe una dintre valorile coloanei Cota si click dreapta


- Activare optiune Filtre text
- Activare optiune Contine
- In fereastra deschisa introducem IT
- OK
c) Toate cartile care sunt editate de Ed.Polirom, dupa anul 2005:

-deschidem tabelul CARTI in modul de lucru DATASHEET VIEW

-cursorul in coloana care va fi sursa a filtrarii – An_pub


-home-sort&filter
-filtrare
-deselectam ‘’select all…’’
-selectam anii: 2006,2007 si 2008
-ok
IN TABELA CITITORI:
a) Cititorii din judetul Bacau sau Vaslui:

-deschidem tabelul CITITORI in modul de lucru DATASHEET VIEW

-cursorul in coloana care va fi sursa a filtrarii – Judet


-home-sort&filter
-filtrare
-deselectam ‘’select all…’’
-selectam: Bacau + Vaslui
-ok
b) Cititorii care sunt de sex feminin:

- Ne pozitionam pe una dintre valorile coloanei CNP si click dreapta


- Activare optiune Filtre text
- Activare optiune Contine
- In fereastra deschisa introducem 2 (CNP-ul femeii incepe cu 2)
- OK

IN TABELA EDITURI:

a) Toate editurile din Bucuresti:

- Ne pozitionam pe una dintre valorile coloanei Localit din tabela EDITURI si click dreapta
- Activare optiune Filtre text
- Activare optiune Este egal cu
- In fereastra deschisa introducem Bucuresti
- OK
b) Toate editurile din afara Bucurestiului:

- Ne pozitionam pe una dintre valorile coloanei Localit din tabela EDITURI si click dreapta
- Activare optiune Filtre text
- Activare optiune Nu este egal cu
- In fereastra deschisa introducem Bucuresti
- OK

IN TABELA IMPRUMUT:

a) Cartile nereturnate:

- Deschiderea tabelei IMPRUMUT


- Home
- Sort&filter
- Complex (advanced)
- Filter by form (filtrare dupa formular)
- Apare IMPRUMUT: Filtrare dupa formular
- Introducem in dreptul atributului Data_retur: Is Null
- Activam comutare filtru (toggle filter/apply filter)

b) Cartile imprumutate in decembrie si nereturnate:

- Deschiderea tabelei IMPRUMUT


- Home
- Sort&filter
- Complex (advanced)
- Filter by form (filtrare dupa formular)
- Apare IMPRUMUT: Filtrare dupa formular
- Introducem in dreptul atributului Data_retur: Is Null
- Introducem in dreptul atributului Data_impr: Month([Data_impr])=12
- Activam comutare filtru (toggle filter/apply filter

TEMA 3
Setul nr. 1 de cerinte:
1. Care sunt cititorii din judetul Suceava si localitatea Vatra Dornei?
IPOTEZE DE LUCRU:
 tabela de lucru: CITITORI
 Localit=VATRA DORNEI
 Judet=Suceava

a. Se deschide tabela din care dorim sa extragem date despre cititori, adica tab CITITORI
b. Se apeleaza tab-ul CREARE
c. Se activeaza iconita EXPERT INTEROGARE
d. Din fereastra INTEROGARE NOUA, selectam optiunea EXPERT DE INTEROGARE SIMPLA
e. OK
f. Din fereastra EXPERT DE INTEROGARE SIMPLA, dam click pe butonul >>, pentru a trece
toate campurile disponibile din fereastra CAMPURI DISPONIBILE in fereastra CAMPURI
SELECTATE. In fereastra CAMPURI DISPONIBILE nu va mai ramane niciun camp. Se pot folosi
butoanele > pentru a trece cate un camp. In cazul in care se doreste sa se reduca un camp
din fereastra CAMPURI SELECTATE in CAMPURI DISPONIBILE, se pot folosi butoanele in
sens invers << sau <.
g. URMATORUL
h. Din urmatoarea fereastra EXPERT INTEROGARE SIMPLA, selectam butonul radio, cu
optiunea MODIFICARE PROIECT INTEROGARE, pentru a impune conditiile legate de
localitate si judet
i. TERMINARE
j. In fereastra nou afisata, vom introduce pe randul CRITERIA, in dreptul campului LOCALIT
valoarea VATRA DORNEI
k. Pe acelasi rand CRITERIA, dar in dreptul campului JUDET, vom introduce SUCEAVA

2. Care sunt cartile publicate dupa 2003 si intrate in biblioteca in 2009?


IPOTEZE DE LUCRU:
 Tabela de lucru: CARTI
 An_pub >=2003
 Data_in=2009

a. Se deschide tabela din care dorim sa extragem date despre cititori, adica tab CARTI
b. Se apeleaza tab-ul CREARE
c. Se activeaza iconita EXPERT INTEROGARE
d. Din fereastra INTEROGARE NOUA, selectam optiunea EXPERT DE INTEROGARE SIMPLA
e. OK
f. Din fereastra EXPERT DE INTEROGARE SIMPLA, dam click pe butonul >>, pentru a trece
toate campurile disponibile din fereastra CAMPURI DISPONIBILE in fereastra CAMPURI
SELECTATE. In fereastra CAMPURI DISPONIBILE nu va mai ramane niciun camp. Se pot folosi
butoanele > pentru a trece cate un camp. In cazul in care se doreste sa se reduca un camp
din fereastra CAMPURI SELECTATE in CAMPURI DISPONIBILE, se pot folosi butoanele in
sens invers << sau <.
g. URMATORUL
h. Din urmatoarea fereastra EXPERT INTEROGARE SIMPLA, selectam butonul radio, cu
optiunea MODIFICARE PROIECT INTEROGARE, pentru a impune conditiile legate de
localitate si judet
i. TERMINARE
j. In fereastra nou afisata, vom introduce pe randul CRITERIA, in dreptul campului An_pub
>=2003
k. Facem o coloanal noua Expr1: Year([Data_in]) si la criterie punem 2009 si debifam patratul
(acest atribut nu va fi inclus in tabela destinatie)

3. Care sunt cartile mai scumpe de 20 de lei, dar tiparite inainte de 2005?
IPOTEZE DE LUCRU:
 Tabela de lucru: CARTI
 An_pub<=2005
 Pret>=20

a. Se deschide tabela din care dorim sa extragem date despre cititori, adica tab CARTI
b. Se apeleaza tab-ul CREARE
c. Se activeaza iconita EXPERT INTEROGARE
d. Din fereastra INTEROGARE NOUA, selectam optiunea EXPERT DE INTEROGARE SIMPLA
e. OK
f. Din fereastra EXPERT DE INTEROGARE SIMPLA, dam click pe butonul >>, pentru a trece toate
campurile disponibile din fereastra CAMPURI DISPONIBILE in fereastra CAMPURI SELECTATE. In
fereastra CAMPURI DISPONIBILE nu va mai ramane niciun camp. Se pot folosi butoanele >
pentru a trece cate un camp. In cazul in care se doreste sa se reduca un camp din fereastra
CAMPURI SELECTATE in CAMPURI DISPONIBILE, se pot folosi butoanele in sens invers << sau <.
g. URMATORUL
h. Din urmatoarea fereastra EXPERT INTEROGARE SIMPLA, selectam butonul radio, cu optiunea
MODIFICARE PROIECT INTEROGARE, pentru a impune conditiile legate de localitate si judet
i. TERMINARE
j. In fereastra nou afisata, vom introduce pe randul CRITERIA, in dreptul campului An_pub <=2005
k. Pe acelasi rand CRITERIA, dar in dreptul campului Pret, vom introduce >=20

4. Care sunt editurile din Iasi?


IPOTEZE DE LUCRU:
 Tabela de lucru: EDITURI
 Localit=Iasi

a. Se deschide tabela din care dorim sa extragem date despre cititori, adica tab EDITURI
b. Se apeleaza tab-ul CREARE
c. Se activeaza iconita EXPERT INTEROGARE
d. Din fereastra INTEROGARE NOUA, selectam optiunea EXPERT DE INTEROGARE SIMPLA
e. OK
f. Din fereastra EXPERT DE INTEROGARE SIMPLA, dam click pe butonul >>, pentru a trece toate
campurile disponibile din fereastra CAMPURI DISPONIBILE in fereastra CAMPURI SELECTATE. In
fereastra CAMPURI DISPONIBILE nu va mai ramane niciun camp. Se pot folosi butoanele >
pentru a trece cate un camp. In cazul in care se doreste sa se reduca un camp din fereastra
CAMPURI SELECTATE in CAMPURI DISPONIBILE, se pot folosi butoanele in sens invers << sau <.
g. URMATORUL
h. Din urmatoarea fereastra EXPERT INTEROGARE SIMPLA, selectam butonul radio, cu optiunea
MODIFICARE PROIECT INTEROGARE, pentru a impune conditiile legate de localitate si judet
i. TERMINARE
j. In fereastra nou afisata, vom introduce pe randul CRITERIA, in dreptul campului LOCALIT
valoarea IASI

5. Care sunt editurile din Bucuresti ?


IPOTEZE DE LUCRU:
 Tabela de lucru: EDITURI
 Localit=Bucuresti

a. Se deschide tabela din care dorim sa extragem date despre cititori, adica tab EDITURI
b. Se apeleaza tab-ul CREARE
c. Se activeaza iconita EXPERT INTEROGARE
d. Din fereastra INTEROGARE NOUA, selectam optiunea EXPERT DE INTEROGARE SIMPLA
e. OK
f. Din fereastra EXPERT DE INTEROGARE SIMPLA, dam click pe butonul >>, pentru a trece
toate campurile disponibile din fereastra CAMPURI DISPONIBILE in fereastra CAMPURI
SELECTATE. In fereastra CAMPURI DISPONIBILE nu va mai ramane niciun camp. Se pot folosi
butoanele > pentru a trece cate un camp. In cazul in care se doreste sa se reduca un camp
din fereastra CAMPURI SELECTATE in CAMPURI DISPONIBILE, se pot folosi butoanele in
sens invers << sau <.
g. URMATORUL
h. Din urmatoarea fereastra EXPERT INTEROGARE SIMPLA, selectam butonul radio, cu
optiunea MODIFICARE PROIECT INTEROGARE, pentru a impune conditiile legate de
localitate si judet
i. TERMINARE
j. In fereastra nou afisata, vom introduce pe randul CRITERIA, in dreptul campului LOCALIT
valoarea BUCURESTI

Setul nr. 2 de cerinte:

1. Ce carti au fost imprumutate in luna februarie 2010?


IPOTEZE DE LUCRU:
 Tabele de lucru: CARTI si IMPRUMUT
 Din tabela CARTI, vom selecta campurile: Cota si Titlu
 Din tabela IMPRUMUT, vom selecta campul: Data_impr
 C1: Month([Data_impr]) trebuie sa fie =2
 C2: YEAR([Data_impr]) trebuie sa fie =2010
 Campurile C1 si C2 vor fi incluse in tabela rezultat

a. Apelam tab-ul CREARE


b. Actionam iconita PROIECTARE INTEROGARE
c. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela CARTI si activam butonul
ADAUGA
d. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela IMPRUMUT si activam
butonul ADAUGA
e. Inchidem fereastra de adaugat tabele
f. Apar tabelele legate intre ele prin tabela parinte carti (1) si tabela copil imprumut
(infinit) cu Nr_inv
g. La pozitionarea pe sageata primului camp, va aparea un meniu vertical
h. Din meniul vertical alegem CARTI.Cota
i. Al doilea camp: vom alege CARTI.Titlu
j. A treia coloana: vom alege IMPRUMUT.Data_impr
k. A patra coloana: introducem C1: Month([Data_impr])/la criterie: 2/se va mentine bifa
l. A cincea coloana: introducem C2: YEAR([Data_impr])/la criterie: 2010/se va mentine
bifa
m. RUN

SQL:

- Deschidem interogarea
- Din tab-ul home, grupul View, se va selecta SQL View si apare codul SQL

2. Ce carti au fost imprumutate si returnate in februarie 2010?


IPOTEZE DE LUCRU:
 Tabele de lucru: CARTI si IMPRUMUT
 Din tabela CARTI, vom selecta campurile: Cota si Titlu
 Din tabela IMPRUMUT, vom selecta campul: Data_retur
 C1: Month([Data_retur]) trebuie sa fie=2
 C2: Year([Data_retur]) trebuie sa fie=2010
 Campurile C1 si C2 NU vor fi incluse in tabela rezultat

a. Apelam tab-ul CREARE


b. Actionam iconita PROIECTARE INTEROGARE
c. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela CARTI si activam butonul
ADAUGA
d. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela IMPRUMUT si activam
butonul ADAUGA
e. Inchidem fereastra de adaugat tabele
f. Apar tabelele legate intre ele prin tabela parinte carti (1) si tabela copil imprumut
(infinit) cu Nr_inv
g. La pozitionarea pe sageata primului camp, va aparea un meniu vertical
h. Din meniul vertical alegem CARTI.Cota
i. Al doilea camp: vom alege CARTI.Titlu
j. A treia coloana: vom alege IMPRUMUT.Data_retur
k. A patra coloana: introducem C1: Month([Data_retur])/la criterie: 2/se va mentine bifa
l. A cincea coloana: introducem C2: YEAR([Data_retur])/la criterie: 2010/se va mentine
bifa
m. RUN
SQL:

- Deschidem interogarea
- Din tab-ul home, grupul View, se va selecta SQL View si apare codul SQL

3. Care sunt editurile cartilor imprumutate in 2010?

IPOTEZE DE LUCRU:
 Tabele de lucru: CARTI, EDITURI SI IMPRUMUT
 Din tabela IMPRUMUT, vom selecta campurile: Nr_inv si Data_impr
 Din tabela CARTI, vom selecta campul: Titlu
 Din tabela EDITURI, vom selecta campul: Denumire
 C1: Year([Imprumut.Data_impr]) trebuie sa fie =2010
 Campul C1 nu va fi inclus in tabela rezultat

a. Apelam tab-ul CREARE


b. Actionam iconita PROIECTARE INTEROGARE
c. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela CARTI si activam butonul
ADAUGA
d. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela IMPRUMUT si activam
butonul ADAUGA
e. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela EDITURI si activam butonul
ADAUGA
f. Inchidem fereastra de adaugat tabele
g. Apar tabelele legate intre ele prin tabela copil EDITURI(1) si tabela CARTI parinte(infinit)
cu Cod_Editura, tabela parinte carti (1) si tabela copil imprumut (infinit) cu Nr_inv
h. La pozitionarea pe sageata primului camp, va aparea un meniu vertical
i. Din meniul vertical alegem IMPRUMUT.Nr_inv
j. Al doilea camp: vom alege IMPRUMUT.Data_impr
k. A treia coloana: vom alege CARTI.Titlu
l. A patra coloana: vom allege EDITURI.Denumire
m. A cincea coloana: introducem C1: YEAR([Imprumut.Data_impr])/la criterie: 2010/NU se
va mentine bifa
n. RUN

Setul nr. 3 de cerinte:

1. Numele cititorilor si adresele celor care au imprumutat carti de la editura Polirom in


2010.

IPOTEZE DE LUCRU:

 Tabela de lucru: CITITORI, CARTI, EDITURI si IMPRUMUT


 Din tabela CITITORI vom selecta campurile: NumePrenume, Strada, Localitatea si
Judet
 Din tabela CARTI, vom selecta campul: Titlu
 Din tabela EDITURI, vom selecta campul: Denumire (se va pune coditia ca
den.=Polirom
 Din tabela IMPRUMUT, vom selecta campul: Data_impr
 C1: Year([Imprumut.Data_impr]) = 2010
 Campul C1 nu va fi inclus in tabela rezultat

a. Apelam tab-ul CREARE


b. Actionam iconita PROIECTARE INTEROGARE
c. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela CITITORI si activam butonul
ADAUGA
d. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela CARTI si activam butonul
ADAUGA
e. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela EDITURI si activam butonul
ADAUGA
f. Din fereastra ADAUGARE TABELE, ne pozitionam pe tabela IMPRUMUT si activam
butonul ADAUGA
g. Inchidem fereastra de adaugat tabele
h. Apar tabelele legate intre ele prin tabela EDITURI(1) si CARTI(infinit) cu Cod_Editura,
tabela CARTI(1) si IMPRUMUT(infinit) cu Nr_inv, IMPRUMUT(infinit) si CITITORI(1) cu
Cod_cit
i. La pozitionarea pe sageata primului camp, va aparea un meniu vertical
j. Din meniul vertical alegem CITITORI.NumePrenume
k. Al doilea camp: vom alege CITITORI.Strada
l. A treia coloana: vom alege CITITORI.Localitatea
m. A patra coloana: vom alege CITITORI.Judet
n. A cincea coloana: vom alege CARTI.Titlu
o. A sasea coloana: vom alege EDITURI.Denumire/Criterie: Polirom
p. A saptea coloana: vom alege IMPRUMUT.Data_impr
q. A opta coloana: vom introduce C1:Year([Data_impr])/Criteria: 2010/nu se va mentine
bifa
r. RUN
Vizualizarea codului SQL prin click dreapta:
SELECT CITITORI.NumePrenume, CITITORI.Strada,CITITORI.Localitatea,
CITITORI.Judet,CARTI.Titlu,EDITURI.Denumire,IMPRUMUT.Data_impr
FROM CITITORI INNER JOIN ((EDITURI INNER JOIN CARTI ON
EDITURI.Cod_Editura=CARTI.Cod_editura) INNER JOIN IMPRUMUT ON
CARTI.Nr_inv=IMPRUMUT.Nr_inv) ON CITITORI.Cod_cit=IMPRUMUT.Cod_cit
WHERE (((EDITURI.Denumire)=’’Polirom’’) AND ((YEAR([Data_impr]))=2010))
ORDER BY Cititori.NumePrenume
Pentru obtinerea listei ordonate dupa numele cititorilor, vom folosi ORDER BY urmata
de NumePrenume = scriem la sfarsit ORDER BY Cititori.NumePrenume

2. Numele cititorilor din Iasi care au imprumutat carti in 2009?


-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

IPOTEZE DE LUCRU:
Tabele de lucru: CITITORI, CARTI si IMPRUMUT
Din tabela CITITORI, vom selecta campurile: NumePrenume, Strada, Localitatea si Judet
Din tabela CARTI, vom selecta campul: Titlu
Din tabela IMPRUMUT, vom selecta campul: Data_impr
C1: Year([Imprumut.Data_impr])=2009
Campul C1 nu va fi inclus in tabela rezultat

a. Creare
b. Proiectare interogare
c. Inchidem add table
d. Pe numele tabelului Interogare1 dam click dreapta de unde vom selecta vizualizare
SQL
e. In fereastra deschisa introducem:
SELECT CITITORI.NumePrenume, CITITORI.Strada, CITITORI.Localitatea,
CITITORI.Judet, CARTI.Titlu, IMPRUMUT.Data_impr
FROM CITITORI INNER JOIN (CARTI INNER JOIN IMPRUMUT ON CARTI.Nr_inv =
IMPRUMUT.Nr_inv) ON CITITORI.Cod_cit = IMPRUMUT.Cod_cit
WHERE (((CITITORI.Localitatea)=’’Iasi’’) AND ((Year([Data_impr]))=2009))
f. Salvare

3. Numele cititorilor si adresele celor care nu au returnat cartile din decembrie 2009.

IPOTEZE DE LUCRU:
 Tabelele de lucru: CITITORI, CARTI si IMPRUMUT
 Din tabela CITITORI, vom selecta campurile: NumePrenume, Strada, Localitatea
si Judet
 Din tabela CARTI, vom selecta campul: Titlu
 Din tabela IMPRUMUT, vom selecta campul: Data_impr
 Din tabela IMPRUMUT, vom selecta campul: Data_retur care trebuie sa fie
NULL. Acest atribut nu trebuie sa apara in tabela rezultat
 C1: Month([Imprumut.Data_impr]) = 12
 C1: Year([Imprumut.Data_impr]) = 2009
 Campurile C1 si C2 nu vor fi incluse in tabela rezultat

Comanda SQL este:


SELECT CITITORI.NumePrenume, CITITORI.Strada, CITITORI.Localitatea, CITITORI.Judet,
CARTI.Titlu, Month([Data_impr]) AS C1, Year([Data_impr]) AS C2
FROM CITITORI INNER JOIN (CARTI INNER JOIN IMPRUMUT ON CARTI.Nr_inv =
IMPRUMUT.Nr_inv) ON CITITORI.Cod_cit = IMPRUMUT.Cod_cit
WHERE (((IMPRUMUT.Data_retur) Is Null) AND ((Month([Data_impr])) = 12) AND
((Year([Data_impr])) = 2009))

4. Numele cititorilor, adresele si cartile cu scadenta la imprumut depasita.


IPOTEZE DE LUCRU:
 Tabelele de lucru: CITITORI, CARTI si IMPRUMUT
 Din tabela CITITORI, vom selecta campurile: NumePrenume, Strada, Localitatea
si Judet
 Din tabela CARTI, vom selecta campul: Titlu
 Din tabela IMPRUMUT, vom selecta campul: Data_impr
 Din tabela IMPRUMUT, vom selecta campul: Data_retur care trebuie sa fie
NULL. Atributul acesta nu va fi inclus in tabela rezultat.
 Depasire: (Date()-[Imprumut.Data_impr])-[Per] >0
 Campurile C1 si C2 nu vor fi incluse in tabela rezultat

Codul inregistrarii este urmatorul:

SELECT CITITORI.NumePrenume, CITITORI.Strada, CITITORI.Localitatea, CITITORI.Judet,


CARTI.Titlu, IMPRUMUT.Data_impr, (Date()_[Data_impr])-[per] AS Depasire
FROM CITITORI INNER JOIN (CARTI INNER JOIN IMPRUMUT ON
CARTI.Nr_inv=IMPRUMUT.Nr_inv) ON CITITORI.Cod_cit=IMPRUMUT.Cod_cit
WHERE ((((Date()-[Data_impr])-[per]>0) AND ((IMPRUMUT.Data_retur) Is Null))

Setul nr. 4 de cerinte:

1. Cate imprumuturi au fost realizate in 2010 ?

-scriem comanda SQL fara sa mai folosim constructorul de interogari

-creare

-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT Count(*) AS Nr_impr_2010


FROM Imprumut
WHERE (((Year([Data_impr]))=2010))

2. Cate edituri sunt din Bucuresti?

-scriem comanda SQL fara sa mai folosim constructorul de interogari


-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT Count(*) AS Nr_Edit_Buc


FROM Edituri
WHERE Edituri.[Localit]=’’Bucuresti’’

INTRODUCERE VALOARE PARA: BUCURESTI


SAU
SELECT Count(*) AS Nr_Edit_Buc
FROM Edituri
WHERE Edituri.Localit=’’Bucuresti’’

3. Cate edituri sunt din afara Bucurestiului ?

-scriem comanda SQL fara sa mai folosim constructorul de interogari


-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT Count(*) AS Nr_Edit_Buc


FROM Edituri
WHERE Edituri.Localit<>’’Bucuresti’’

4. Care este perioada de intarziere cea mai mare inregistrata de o carte


imprumutata?

-scriem comanda SQL fara sa mai folosim constructorul de interogari


-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT Max((Date()-[Data_impr])-[Per] AS Max_per

FROM IMPRUMUT

5. Care este media zilelor de intarziere pe total biblioteca la nivelul anului 2009?

-scriem comanda SQL fara sa mai folosim constructorul de interogari


-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT AVG((Date()-[Data_impr])-[Per]) AS Medie_2009


FROM IMPRUMUT
WHERE Year(Data_impr)=2009

6. Cate carti a imprumutat cititorul cu numele Zaharia Maria?

-scriem comanda SQL fara sa mai folosim constructorul de interogari


-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

a. Mai intai, aflam Cod_cit din tabela CITITORI

SELECT Cod_cit

FROM Cititori

WHERE Cititori.NumePrenume=’”Zaharia Maria”

b. Dupa ce am aflat codul cititorului, vom folosi operatorul IN, utilizand astfel o
subinterogare in clauza WHERE

SELECT COUNT(*) AS NR_carti

FROM Imprumut

WHERE Imprumut.Cod_cit IN (SELECT Cod_cit

FROM Cititori

WHERE Cititori.NumePrenume=”Zaharia Maria”)

7. Cate carti imprumutate au cea mai mare perioada de intarziere?

-scriem comanda SQL fara sa mai folosim constructorul de interogari


-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT Count(*) AS Expr1

FROM IMPRUMUT

WHERE ((((Date()-[Data_impr])-[Per]) IN (SELECT Max((Date()-[Data_impr])-[Per]) AS

Max_per

FROM IMPRUMUT)))

8. Care sunt cartile care au inregistrat cea mai mare perioada de intarziere?
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT CARTI.Cota, CARTI.Titlu

FROM Carti INNER JOIN IMPRUMUT ON CARTI.Nr_inv=IMPRUMUT.Nr_inv

WHERE ((((Date()-[Data_impr])-[Per]) IN (SELECT Max((Date()-[Data_impr])-[Per] AS

Max _per FROM IMPRUMUT)))

Setul nr. 5 de cerinte:


1. Numele cititorilor care au prenumele ca derivat de la Vasile?
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

IPOTEZE DE LUCRU:
 Tabela de lucru este: CITITORI
 Vor fi selectati doar cei care au prenumele cu radacina VASIL/SILE/VASILICA
SELECT CITITORI.*
FROM CITITORI
WHERE (((CITITORI.NumePrenume) Like ‘* Vasil*’ Or (CITITORI.NumePrenume)
Like ‘* Sile*’ Or (CITITORI.NumePrenume) Like ‘* Vasilica*’))
Click dreapta pe interogare si alegem salvare
2. Cate carti sunt intrate pe fiecare an in biblioteca?
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT Year(Data_in) AS Expr1, Count(*) AS Nr_carti


FROM Carti
GROUP BY Year(Data_in)
ORDER BY Year(Data_in)
3. Care este numarul cartilor publicate pe ani din cele detinute de biblioteca?
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT An_pub, Count(*) AS Nr_carti


FROM Carti
GROUP BY An_pub
ORDER BY An_pub
4. Sa se afiseze anii in care numarul cartilor publicate si detinute de biblioteca este mai
mare sau egal cu 3.
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT An_pub, Count(*) AS Nr_carti


FROM Carti
GROUP BY An_pub
HAVING (((Count(*))>=3))
ORDER BY An_pub
5. Cate imprumuturi au fost sub 7 zile (inclusiv) in fiecare an?
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT YEAR([Data_impr]), COUNT(*)


FROM Imprumut
WHERE Imprumut.Per<=7
GROUP BY YEAR([Data_impr])
ORDER BY YEAR([Data_impr])
6. Care sunt editurile ale caror carti editate au fost imprumutate in 2010?
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT DISTINCT EDITURI.Cod_Editura, EDITURI.Denumire


FROM EDITURI INNER JOIN (CARTI INNER JOIN IMPRUMUT ON
CARTI.Nr_inv=IMPRUMUT.Nr_inv) ON EDITURI.Cod_Editura=CARTI.Cod_editura
WHERE (((Year([Data_impr]))=2010))
ORDER BY EDITURI.Denumire
!!!Folosim DISTINCT ca sa nu se repete rezultatele de mai multe ori.
7. Care sunt cititorii care au imprumutat mai mult de 2 carti?
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT CITITORI.NumePrenume, Cod_cit


FROM CITITORI
WHERE CITITORI.cod_cit In
(SELECT Cod_cit FROM (SELECT COUNT(*), Cod_cit FROM IMPRUMUT GROUP BY
IMPRUMUT.Cod_cit HAVING COUNT(*)>=2))
8. Care sunt editurile care au editate mai mult de 4 carti din cele detinute de biblioteca?
-scriem comanda SQL fara sa mai folosim constructorul de interogari
-creare
-proiectare interogare
-inchidem add table
-pe numele tabelului Intergoare1 click dreapta de unde vom selecta vizualizare SQL

SELECT EDITURI.Denumire, EDITURI.Cod_Editura


FROM EDITURI
WHERE EDITURI.Cod_Editura In (SELECT Cod_Editura FROM (SELECT COUNT(*),
Cod_Editura FROM CARTI GROUP BY CARTI.Cod_Editura HAVING COUNT(*)>=3))

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