Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


BAZE DE DATE

baze de date



+ Font mai mare | - Font mai mic



 

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1086
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved