CATEGORII DOCUMENTE |
Structura bazei de date este urmatoarea:
Clienti:
Codc |
Numec |
Telc |
Nr_cm |
Coda |
Produse:
Codp
|
Numep |
Cantp |
Pret |
Comenzi:
Nr_com |
Codc |
Codf |
Codp |
Furnizori:
Codf |
Numef |
Adresaf |
Telf |
Antrenori:
Coda |
Numea |
Adresaa |
Tela |
CNP |
Data_ang |
drop table clienti_fitt cascade constraints;
drop table produse_fitt cascade constraints;
drop table furnizori_fitt cascade constraints;
drop table antrenori_fitt cascade constraints;
drop table comenzi_fitt cascade constraints;
create table antrenori_fitt(
coda number( ) primary key,
numea varchar2( ),
adresaa varchar2( ),
tela number( ),
cnp number( ),
data_ang date);
create table clienti_fitt(
codc number( ) primary key,
numec varchar2( ),
telc number( ),
nr_cm number( ),
coda number( ),
constraint clienti_antrenori_fk foreign key(coda) references
antrenori_fitt);
create table produse_fitt(
codp number( ) primary key,
numep varchar2( ),
cant varchar2( ),
pret number( ));
create table furnizori_fitt(
codf number ( ) primary key,
numef varchar2( ),
adresaf varchar2( ),
telf number( ));
create table comenzi_fitt(
nr_com number( ) primary key,
codc number( ),
codf number( ),
codp number ( ),
constraint furnizori_comenzi_fk foreign key(codf) references
furnizori_fitt,
constraint clienti_comenzi_fk foreign key(codc) references
clienti_fitt,
constraint produse_comenzi_fk foreign key(codp) references
produse_fitt);
desc clienti_fitt;
desc produse_fitt;
desc furnizori_fitt;
desc antrenori_fitt;
insert into antrenori_fitt values( 'Lungu Eva' 'Str. 11
iunie,nr12' ,to_date( 'ddmmyyyy'));
insert into antrenori_fitt values( 'Mihai Andrei' 'Cal.
Victoriei, nr 1-5' ,to_date( 'ddmmyyyy'));
insert into antrenori_fitt values( 'Vasilescu
Ana' 'Bld. Regina
Maria,nr 120' ,to_date( 'ddmmyyyy'));
insert into clienti_fitt values( 'Popescu Ion' );
insert into clienti_fitt values( 'Ionescu
Andrei' );
insert into clienti_fitt values( 'Marin Mihai' );
insert into produse_fitt values( 'Batoane
proteine' );
insert into produse_fitt values( 'produs 1' );
insert into produse_fitt values( 'produs 2' );
insert into furnizori_fitt values( 'sc miras sa' 'Str.
Lalelelor,nr.23' );
insert into furnizori_fitt values( 'sc evy srl' 'Bld. Carol,nr
123' );
insert into furnizori_fitt values( 'sc star sa' 'Bld.
Decebal,nr 70' );
insert into comenzi_fitt values( );
insert into comenzi_fitt values( );
insert into comenzi_fitt values( );
insert into comenzi_fitt values(
1. Modificati tabela Furnizori adaugand coloana 'Localitate' de varchar2[15].
alter table furnizori_fitt add(Localitate varchar2(
2. Stergeti coloana 'Adresaf' din tabela Furnizori.
alter table furnizori_fitt drop column adresaf;
3. Adaugati la tabela Produse coloana 'UM' (unitati de masura) de varchar2[3].
alter table produse_fitt add(UM varchar2(
4. Dezactivati cheia primara a tabelei Furnizori. Cum explicate eroarea primita?
alter table furnizori disable primary key;
Exista o dependenta legata de cheia primara si aceasta nu se poate dezactiva
5. Adaugati restrictia cantp not null la tabela Produse.
alter table produse
add constraint not_null_constr
check (cantp is not null);
6. Actualizati tabela Produse stabilind pretul la produsele care incep cu litera "B" de 850.
update produse_fitt set pret= where upper(numep) like 'B%'
7. Actualizati tabela Clienti prin scrierea tuturor clientilor cu litere mari.
update clienti_fitt set numec=upper(numec);
8. Sa se stearga antrenorii care s-au angajat in anul 2003.
delete from antrenori_fitt where extract(year from data_ang)=
9. Antrenorul cu codul 33 sa aiba acelasi telefon ca antrenorul cu codul 22.
update antrenori_fitt set tela=(select tela from antrenori_fitt where coda= ) where coda=
10 Se realizeaza o aprovizionare cu batoane proteine.
update produse_fitt set cant=cant+ where numep='Batoane proteine'
D.
1. Sa se afiseze p ecran numele produselor care au pretul intre 1900 si 5000.
select numep from produse_fitt where pret between and
2. Sa se afiseze clientii al caror nume incepe cu "M" si au codc > 0003.
select numec from clienti_fitt where upper(numec) like 'M%' and codc>
3. .Sa se afiseze produsele care au pretul mai mic decat media preturilor.
select numep,pret from
produse_fitt where pret<(select avg(pret) from
produse_fitt);
4. Afisati antrenorii de sex feminin al caror nume incepe cu "L".
select numea from antrenori_fitt where to_char(cnp) like and upper(numea) like 'L%'
5. Afisati cel mai nou angajat din firma.
select numea from
antrenori_fitt where data_ang=(select max(data_ang) from
antrenori_fitt);
6. Sa se afiseze produsele cumparate de clientul care are codul client cel mai mare.
select numep from produse_fitt p, comenzi_fitt co, clienti_fitt cl where cl.codc=(select max(codc) from clienti_fitt) and cl.codc=co.codc and co.codp=p.codp;
7. Sa se afiseze firmele care livreaza produsul Batoane proteine.
select numef from
furnizori_fitt f, produse_fitt p, comenzi_fitt c where p.numep='Batoane
proteine' and p.codp=c.codp and
f.codf=c.codf;
8. Sa se afiseze numele clientului si numele antrenorului care se ocupa de el.
select numec, numea from clienti_fitt c, antrenori_fitt a where c.coda=a.coda;
9. Sa se afiseze cate produe au unitatea de masura in pachete si cate in bucati.
select um, count(*) from produse_fitt group by um;
10. Sa se afiseze valoarea totala cumparata de fiecare client daca aceasta este > de 5000.
select numec,sum(cant*pret) from produse_fitt p,clienti_fitt cl, comenzi_fitt co where p.codp=co.codp and co.codf=cl.codf group by numec having sum(cant*pret)>
11. Sa se afiseze cantitatea din produsele care au um='pac' ordonate dupa cant precum si cant totala din aceste produse.
select numep, cant from produse_fitt where um='pac'
union
select 'Total', sum(cant) from produse_fitt where um='pac' order by
12. Sa se afiseze penultimul antrenor angajat.
select * from (select * from antrenori_fitt order by data desc)
where rownum <=
minus
select * from (select * from antrenori_fitt order by data desc)
where rownum <=
E.
1. Sa se creeze un view pe baza selectului de la punctul 10.
create view nume_cant as select numec,sum(cant*pret) from produse_fitt p,clienti_fitt cl, comenzi_fitt co where p.codp=co.codp and co.codf=cl.codf group by numec having sum(cant*pret)>
2. Sa se afiseze numele produsului, cantitatea si "Cantitate suficienta" daca cant>=1000, "Cantitate insuficienta " daca cant<1000, "Nu avem informatii despre cantitate" daca cant este NULL.
select numep, cantp, case when cant>= then 'Cantitate Suficienta'
when cant< then 'Cantitate Insuficienta'
when cant is null then 'NU avem informatii depspre cantitate'
end "Informatii stoc" from produse_fitt ;
3. Sa se afiseze cate produse au cant >=1000, cate <1000 si pentru cate nu avem informatii despre cantitate.
select count (case when cant>= then 1 else null end) ">=1000",
count (case when cant< then 1 else null end) "<1000",
count (case when cant is null then 1 else null end) "Nu avem informatii"
from produse_fitt;
4. Sa se creeze un synonym pentru tabela Antrenori care sa se numeasca Angajati si apoi sa se afiseze synonymul.
create synonym angajati for antrenori;
select * from user_synonyms;
5. Sa se creeze un index pe campul tela al tabelei Antrenori.
create index tela_idx on antrenori(tela);
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1159
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved