Documente Academic
Documente Profesional
Documente Cultură
EVIDENŢA ACTIVITĂŢILOR
UNEI BIBLIOTECI
MOTIVAŢIA APLICAŢIEI
CLIENŢI
COD-CLI NUME ADRESA CNP COD_AB DATA_AB DATA_EX
ÎNCHIRIERI
BIBLIOTECĂ
COD TITLU AUTOR NR_VOL NR_EXE EDITURA ANUL
C:
6.Modificaţi în Stoenescu Mirela numele clientului cu cod_cli egal cu 105.
UPDATE Clienti
SET nume=’Stoenescu Mirela’
WHERE cod_cli=3;
7.In tabela Bilblioteca cresteti cu 5 numarul de exemplare al cartii Padurea Spanzuratilor
UPDATE Biblioteca
SET nr_exe=nr_exe+5
WHERE titlu=’Padurea Spanzuratilor’;
8.Modificati in 35 valoarea abonamentului facut pentru 180 de zile
UPDATE Abonamente
SET valoare=35
WHERE nr_zile=180;
9.Modificati in Vitan adresa clientului cu cod_cli egal cu 108
UPDATE Clienti
SET adresa=’Vitan’
WHERE cod_cli=108;
10.Stergeti tuplul din tabela clienti cu cod_cli egal cu 102
DELETE FROM Clienti
WHERE cod_cli=102;
D:
11.Sa se afiseze toate datele despre cartile din biblioteca
SELECT * FROM Biblioteca
12.Sa se afiseze numele si adresa clientilor in ordine alfabetica
SELECT nume, adresa FROM Clienti
ORDER BY nume ASC;
13.Sa se afiseze cartile scrise de Liviu Rebreanu
SELECT titlu,autor,nr_vol FROM Biblioteca
WHERE autor=’Liviu Rebreanu’;
14.Sa se afiseze clientii care au carti inchiriate si titlul cartilor
SELECT i.nume, b.titlu FROM Inchirieri i, Biblioteca b
WHERE i.cod=b.cod;
15. Sa se afiseze numarul cartilor inchiriate in 2007
SELECT count(cod_i) Numarul_inchirierilor FROM Inchirieri
WHERE data_i LIKE ’%07’;
16.Sa se afiseze titlul, autorul si data returnarii cartilor inchiriate in 2006
SELECT b.titlu,b.autor,i.data_ret FROM Biblioteca b, Inchirieri i
WHERE i.cod=b.cod
AND i.data_i LIKE ’%06’;
17.Sa se afiseze numarul de clienti pentru fiecare tip de abonament
SELECT a.tip_ab, count(c.cod_cli) FROM Abonamente a, Clienti c
WHERE a.cod_ab=c.cod_ab
GROUP BY tip_ab;
18.Sa se afiseze titlu si autorul cartilor din biblioteca si data inchirierii, daca au fost inchiriate
SELECT b.titlu,b.autor,i.data_i FROM Biblioteca b, Inchirieri i
WHERE b.cod=i.cod(+);
19.Sa se afiseze cartile editate intre anii 2002 si 2006 fara cele editate in 2004
SELECT * FROM Biblioteca WHERE anul between 2002 and 2006
MINUS
SELECT * FROM Biblioteca WHERE anul=2004;
20.Sa se afiseze cartile inchiriate in 2006 pentru 30 zile, si cartile inchiriate editate in 2005
SELECT b.titlu, b.autor, b.anul, i.data_i, i.nr_z FROM Biblioteca b, Inchirieri i
WHERE b.cod=i.cod
AND i.data_i LIKE ’%06’
AND i.nr_z=30
UNION
SELECT b.titlu, b.autor, b.anul, i.data_i, i.nr_z FROM Biblioteca b, Inchirieri i
WHERE b.cod=.i.cod
AND b.cod=i.cod
AND b.anul=2005;
21.Sa se afiseze toti clientii bibliotecii care au aceeasi adresa ca si clientul cu codul 102
SELECT * FROM Clienti
WHERE adresa=(SELECT adresa FROM Clienti WHERE cod_cli=102);
22.Sa se afiseze toti clientii care au acelasi tip de abonament ca si clientul cu codul 101, si s-
au abonat in 2006
SELECT nume, adresa, data_ab FROM Clienti
WHERE cod_ab=(SELECT cod_ab FROM Clienti WHERE cod_cli=101)
AND data_ab LIKE ’%06’;
23.Sa se afiseze cartile ce vor fi returnate in luna februarie
SELECT b.titul,b.autor, i.data_ret FROM Biblioteca b, Inchirieri i
WHERE i.cod=b.cod
AND i.data_ret LIKE ’feb%’;
24.Sa se stearga din tabela Inchirieri clientii care au data returnarii astazi
DELETE FROM Inchirieri
WHERE data_ret=sysdate;
25.Sa se afiseze cartile inchiriate care au fost editate in acelasi an cu cartea care are codul 001
SELECT titlu, autor FROM Biblioteca
WHERE anul=(SELECT anul FROM Bilioteca WHERE cod=001)
AND biblioteca.cod=inchirieri.cod;
E:
26.Sa se creeze o tabela virtuala cu cartile editate intre anii 2004 si 2006
CREATE VIEW Carti_view AS
SELECT * FROM Biblioteca
WHERE anul BETWEEN 2004 AND 2006;
27.Sa se stearga din tabela virtuala Carti_view cartile care sunt inchiriate
DELETE FROM Carti_view
WHERE carti_view.cod=inchirieri.cod;
28.Sa se creeze un index pe tabela Clienti pe coloana Nume
CREATE INDEX Clienti_nume_idx ON Clienti(nume);
29.Sa se creeze o secventa pentru asigurarea unicitatii cheii primare din tabela Clienti
CREATE SEQUENCE seq_cod_cli
start with 100 Increment by 10
Maxvalue 1000 nocycle;