Академический Документы
Профессиональный Документы
Культура Документы
table
table
table
table
update
update
update
case J
table
table
table
table
table
into
into
into
into
into
begin
delete from angajati where coda=cod;
end a;
/
execute a(2);
create table Firma_cla(codfi number(4)constraint pk_Firma_cla_codfi Primary Key
constraint nn_codfi NOT NULL constraint ck_codf check (codfi<=2000),
numef VARCHAR2 (20) CONSTRAINT ck_Firma_cla_numef CHECK (SUBSTR(numef,1,1)=UPPER
(SUBSTR(numef,1,1))),adresaf varchar2(20),localitatef varchar2(20));
create table angajati_cla(coda number(4) constraint pk_angajati_cla_coda Primary
Key constraint nn_coda not null,nume varchar2(20),prenume varchar2(20),
data_nasterii date,salarb number(6),spor varchar2(4),codfi number(4) constraint
fk_angajati_cla_codfi references Firma_cla(codfi));
insert into Firma_cla values (1,'Auchan','str.Ion','Timisoara');
insert into Firma_cla values (2,'Profi','str.Maria','Timisoara');
insert into Firma_cla values (3,'Kaufland','str.Vasile','Timisoara');
select * from FIRMA_CLA;
insert into angajati_cla values (1,'Sima','Timotei',to_date('12/03/2009','dd/mm/
yyyy'),4000,200,2);
insert into angajati_cla values (2,'Vesnic','Florin',to_date('03/06/2007','dd/mm
/yyyy'),3000,100,3);
insert into angajati_cla values (3,'Sima2','Timotei',to_date('12/03/2009','dd/mm
/yyyy'),4000,200,2);
insert into angajati_cla values (4,'Sima3','Timotei',to_date('12/03/2009','dd/mm
/yyyy'),4000,200,2);
insert into angajati_cla values (5,'Sima4','Timotei',to_date('12/03/2009','dd/mm
/yyyy'),4000,200,1);
insert into angajati_cla values (6,'Sima5','Timotei',to_date('12/03/2009','dd/mm
/yyyy'),4000,200,1);
select * from ANGAJATI_CLA;
alter table angajati_cla add moto date;
alter table angajati_cla drop column moto;
update angajati_cla set data_angajarii=sysdate where coda=1;
select nume,numef,(salarb+salarb*spor) salb from ANGAJATI_CLA,FIRMA_CLA where FI
RMA_CLA.CODFI = ANGAJATI_CLA.CODFI;
select numef,count(*)NrAngj from ANGAJATI_CLA,FIRMA_CLA where FIRMA_CLA.CODFI =
ANGAJATI_CLA.CODFI group by numef;
select numef,localitatef,sum(salarb)Suma from FIRMA_CLA,ANGAJATI_CLA where FIRMA
_CLA.CODFI = ANGAJATI_CLA.CODFI group by numef,localitatef order by suma desc;
select numef,count(coda)NrAngj from ANGAJATI_CLA,FIRMA_CLA where FIRMA_CLA.CODFI
= ANGAJATI_CLA.CODFI group by numef having count(coda)>=2;
desc LOCALIT_ALI;
CREATE TABLE localit_ali (codloc number(5) PRIMARY KEY, localitate varchar2(30),
judet varchar2(2) check (judet=UPPER(JUDET)) );
CREATE TABLE datepers_ali (nrmatr number(3) Primary key check (nrmatr<=400),nume
pren varchar2(20), datanast date, codlocalitate number(5) references localit_ali
(codloc),
sex varchar2(1) default 'F', adresa varchar2(20), codpost number(6));
CREATE SEQUENCE codloc_seq increment by 1 minvalue 100 maxvalue 1000
nocycle nocache order;
INSERT INTO localit_ali values ( codloc_seq.NEXTVAL , 'lugoj', 'TM');
INSERT INTO localit_ali values ( codloc_seq.NEXTVAL , 'Iasi', 'IS');
INSERT INTO localit_ali values ( codloc_seq.NEXTVAL , 'Timisoara', 'TM');
INSERT INTO localit_ali values ( codloc_seq.NEXTVAL , 'Timisoara', 'SM');
SELECT * from localit_ali;
INSERT INTO datepers_ali values (234, 'Popescu Vasile', to_date('08/08/1986','dd
Eminescu', 707123);
INSERT INTO datepers_ali values (236, 'Pop Ion', to_date('20/01/1984','dd/mm/yyy
y'), 102, 'M', 'Str. Daliei', 300758);
INSERT INTO datepers_ali values (237, 'Avram Ionut', to_date('03/03/1998','dd/mm
/yyyy'), 101, 'M', 'Str. V. Parvan', 300758);
INSERT INTO datepers_ali values (237, 'Avram Ionut', to_date('03/03/1998','dd/mm
/yyyy'), 101, 'M', 'Str. V. Parvan', 300758);
select * from datepers_ali;
SELECT judet, round(avg(medieadm),2) FROM datepers_ali, localit_ali where codloc
alitate=codloc and judet='TM' group by judet;
select medieadm from datepers_ali where codlocalitate=101;
create or replace procedure me(cod number)is
num varchar(20);
med number(5,2);
begin
select avg(medieadm)into med from datepers_ali where codlocalitate=cod;
select localitate into num from datepers_ali,LOCALIT_ALI where codlocalitate=cod
and codloc=codlocalitate;
DBMS_OUTPUT.PUT_LINE('Studentii '||num||' au media '||med);
end me;
/
execute me(101);
select numepren,localitate from localit_ali,datepers_ali where codloc=codlocalit
ate and codlocalitate=101;
create or replace procedure detalii(cod number)is
num varchar2(20);
loc varchar2(15);
cursor lc is select numepren,localitate from localit_ali,datepers_ali where codl
oc=codlocalitate and codlocalitate=cod;
begin
open lc;
loop
fetch lc into num,loc;
exit when lc%notfound;
DBMS_OUTPUT.PUT_LINE(num||' '||loc);
end loop;
close lc;
end detalii;
/
execute detalii(103);
INSERT INTO localit_ali values ( codloc_seq.NEXTVAL , 'lugoj', 'TM');
INSERT INTO localit_ali values ( codloc_seq.NEXTVAL , 'Iasi', 'IS');
INSERT INTO localit_ali values ( codloc_seq.NEXTVAL , 'Timisoara', 'TM');
INSERT INTO localit_ali values ( codloc_seq.NEXTVAL , 'Timisoara', 'SM');
select * from localit_ali;
SELECT * from DATEPERS_ALI;
select numepren,medieadm from localit_ali,datepers_ali where codloc=codlocalitat
e and judet='IS';
create or replace procedure det(ju varchar2)is
nu varchar2(20);
me number;
cursor a is select numepren,medieadm from localit_ali,datepers_ali where codloc=
codlocalitate and judet=ju;
begin
open a;
loop
fetch a into nu,me;
exit when a%notfound;
DBMS_OUTPUT.PUT_LINE('Nume: '||nu||' Me: '||me);
end loop;
close a;
end det;
/
execute det('TM');
select judet,count(nrmatr)NrStud from localit_ali,datepers_ali where codloc=codl
ocalitate group by judet;
create or replace procedure nr is
ju varchar(10);
n number;
cursor a is select judet,count(nrmatr)from localit_ali,datepers_ali where codloc
=codlocalitate group by judet;
begin
DBMS_OUTPUT.PUT_LINE('Judet '||' Nr');
open a;
loop
fetch a into ju,n;
exit when a%notfound;
DBMS_OUTPUT.PUT_LINE(ju||'
'||n);
end loop;
close a;
end nr;
/
execute nr;
select judet,numepren,medieadm from localit_ali,datepers_ali where codloc=codloc
alitate and judet='TM';
create or replace procedure det(j varchar2)is
ju varchar2(10);
num varchar2(20);
me number;
cursor a is select judet,numepren,medieadm from localit_ali,datepers_ali where c
odloc=codlocalitate and judet=j;
begin
DBMS_OUTPUT.PUT_LINE('Judet '||'Nume '||'
Medie');
open a;
loop
fetch a into ju,num,me;
exit when a%notfound;
DBMS_OUTPUT.PUT_LINE(ju||' '||num||' '||me);
end loop;
close a;
end;
/
execute det('TM');
select judet,count(nrmatr) from datepers_ali,localit_ali where codloc=codlocalit
ate and medieadm>7 group by judet;
create or replace procedure m is
ju varchar(3);
nr number;
cursor a is select judet,count(nrmatr) from datepers_ali,localit_ali where codlo
c=codlocalitate and medieadm>8 group by judet;
begin
open a;
loop
fetch a into ju,nr;
exit when a%notfound;
DBMS_OUTPUT.PUT_LINE(ju||' '||nr);
end loop;
close a;
end;
/
execute m;
CREATE TABLE localitati (codloc number(5) PRIMARY KEY, localitate varchar2(30),
judet varchar2(2) check (judet=UPPER(JUDET)) );
CREATE TABLE datepers (nrmatr number(3) Primary key ,
numepren varchar2(20), datanast date, codlocalitate number(5) references localit
ati(codloc),
sex varchar2(1) default 'F', adresa varchar2(20), codpostal number(6));
CREATE SEQUENCE codloc_seq increment by 1 minvalue 100 maxvalue 1000
nocycle nocache order;
INSERT INTO localitati values ( codloc_seq.NEXTVAL , 'Lugoj', 'TM');
INSERT INTO localitati values ( codloc_seq.NEXTVAL , 'Iasi', 'IS');
INSERT INTO localitati values ( codloc_seq.NEXTVAL , 'Timisoara', 'TM');
SELECT * from localitati;
INSERT INTO datepersonale values (234, 'Popescu Vasile', to_date('08/08/1986','d
d/mm/yyyy'), 100, 'M', 'Str. Liliacului', 611111);
INSERT INTO datepersonale (nrmatr, numepren,datanast, codlocalitate,adresa,codpo
stal) values (235, 'Ionescu Monica', to_date('02/10/1986','dd/mm/yyyy'), 101, 'S
tr. Eminescu', 707123);
INSERT INTO datepersonale values (236, 'Pop Ion', to_date('20/01/1984','dd/mm/yy
yy'), 102, 'M', 'Str. Daliei', 300758);
INSERT INTO datepersonale values (237, 'Avram Ionut', to_date('03/03/1998','dd/m
m/yyyy'), 101, 'M', 'Str. V. Parvan', 300758);
SELECT * from datepers;
create or replace function q(nr number)return varchar2 is
nu varchar2(30);
begin
select numepren into nu from datepers where nrmatr=nr;
return nu;
end;
/
declare
a varchar(30);
begin
select adresa into a from datepers where nrmatr=235;
dbms_output.put_line('Studentul cu nrmatr 235 are numele '||q(235)||' iar adresa
'||a);
end;
/
create or replace function c(ju varchar2) return varchar2 is
num varchar(20);
g number;
cursor a is select numepren from datepers,localitati where codloc=codlocalitate
and judet=ju;
begin
DBMS_OUTPUT.PUT_LINE('Numele pers din jud '||ju||' sunt/este:');
open a;
g:=0;
loop
fetch a into num;
exit when a%notfound;
g:=g+1;
DBMS_OUTPUT.PUT_LINE(g||' '||num);
end loop;
close a;
DBMS_OUTPUT.PUT_LINE('Nr total de pers: '||g);
return ju;
end;
/
begin
DBMS_OUTPUT.PUT_LINE(c('TM'));
END;
/
select (extract(year from sysdate)-extract(year from datanast))Varsta from datep
ers where nrmatr=237;
create or replace function v(nrm number) return number is
nr number;
begin
select (extract(year from sysdate)-extract(year from datanast)) into nr from dat
epers where nrmatr=nrm;
return nr;
end;
/
declare
num varchar2(30);
n number;
begin
select numepren into num from datepers where nrmatr=237;
DBMS_OUTPUT.PUT_LINE(num||' are varsta '||v(237));
end;
/
select * from datepers;
select count(*) from datepers where sex='M';
create or replace function s(se varchar2) return number is
n number;
begin
select count(nrmatr)into n from datepers where sex=se;
return n;
end;
/
declare
x varchar2(2);
begin
DBMS_OUTPUT.put_line('Sexul F este un nr de '||s('F'));
end;
/
declare
nume datepers.numepren%type;
adres datepers.adresa%type;
med datepers.medie_admitere%type;
n varchar(20);
a varchar(30);
m number(5,2);
crt number;
su number;
cursor c is select numepren,adresa,medie_admitere from datepers where codlocalit
ate=101;
begin
select sum(medie_admitere) into su from datepers where codlocalitate=101;
DBMS_OUTPUT.PUT_LINE('Nr crt '||'Nume
'||' Adresa
'||' Medie
');
open c;
crt:=0;
fetch c into nume,adres,med;
loop
n:=nume;
a:=adres;
m:=med;
crt:=crt+1;
DBMS_OUTPUT.PUT_LINE(crt||'
'||n||' '||' '||a||' '||m);
fetch c into nume,adres,med;
exit when c%notfound;
end loop;
DBMS_OUTPUT.PUT_LINE('Suma criteriu este: '||crt||' Suma mediei este: '||su);
close c;
end;
/
select*from datepers;
create table perso(codpers NUMBER(3) CONSTRAINT pk_codpers PRIMARY KEY ,numepers
VARCHAR2(30));
create table proiecte(codpr number(2) CONSTRAINT pk_Codpr PRIMARY KEY, titlupr v
archar(30), dirpr number(3) CONSTRAINT fk_dirpr REFERENCES
perso(codpers));
insert
insert
insert
insert
select
INSERT
INSERT
INSERT
INSERT
INSERT
select
,2);
,1);
,2);
,4);
,3);
DBMS_OUTPUT.PUT_LINE(pr('IONESCU'));
END;
/
Subiect 3 vechi:
create table pac(nrCI number(6) primary key,dataCI date default sysdate,numprenp
varchar2(30),datan date,loc varchar2(20),adresa varchar(20),nrtel varchar(10));
create table doct(codD number(2) primary key,numd varchar(30),spec varchar(10));
create table prog(codP number(3) primary key,datap date default sysdate,tarif nu
mber(4),codd2 number(2) references doct(codD),nrci2 number(6) references pac(nrC
I));
desc pac;
desc doct;
desc prog;
insert into pac values(244587,to_date('16-04-2012','dd-mm-yyyy'),'Ion Popescu',t
o_date('16-04-1994','dd-mm-yyyy'),'TM','Str Pastelui','0729456600');
insert into pac values(245587,to_date('16-04-2012','dd-mm-yyyy'),'Miha Stona',to
_date('16-04-1994','dd-mm-yyyy'),'TM','Str Ochilor','0729456600');
insert into pac values(246587,to_date('16-04-2012','dd-mm-yyyy'),'Leuste Florin'
,to_date('16-04-1994','dd-mm-yyyy'),'TM','Str Muntilor','0729456600');
select * from pac;
insert
insert
insert
select
insert
insert
insert
insert
insert
insert
select
insert
insert
insert
insert
insert
insert
insert
select
Subiect 3 nou:
create table agenti(nra number(2) primary key,numa varchar2(20),adresaa varchar2
(20),tela varchar2(10));
create table proprietari(nrp number(3) primary key,nump varchar2(20),adresap var
char2(20),telp varchar2(10));
create table imobile(nri number(1) primary key,loc varchar2(10),zona varchar2(20
),camere number(1),adresa varchar2(20),prets number(4),pretv number(4),datav dat
e default sysdate,
nrpi number(3)references proprietari(nrp),nrai number(2) references agenti(nra))
;
desc imobile; desc agenti; desc proprietari;
insert
insert
insert
select
insert
insert
insert
select
nrpv));
desc procese;desc contracte;desc chitante;
alter table procese modify procdesp number(5,2);
insert
insert
insert
select
references examene(codex));
desc cursanti;desc examene;desc prezentari;
insert into cursanti values(1,'Nume 1',to_date('13-05-1994','dd-mm-yyyy'),'TM','
M');
insert into cursanti values(2,'Nume 2',to_date('13-05-1994','dd-mm-yyyy'),'TM','
M');
select * from cursanti;
insert into examene values(10,to_date('20-05-2014','dd-mm-yyyy'));
insert into examene values(11,to_date('22-05-2014','dd-mm-yyyy'));
select * from examene;
insert
insert
insert
insert
insert
insert
insert
select
begin
pct:=s(nu);
DBMS_OUTPUT.PUT_LINE('Studentul '||nu||' are pctj la utlima prezentare '||pct);
END;
/
Subiect 2:
create table categorii(codcat number(2) primary key,dencat varchar2(15));
create table valuta(codval number(3) primary key,denval varchar2(10));
create table produse(codp number(2) primary key,denp varchar2(20),um varchar2(3)
check(um in('l','m','kg')),pret number(4),stoc number(4),codcat1 number(2) refe
rences categorii(codcat),
codval2 number(3) references valuta(codval));
desc categorii;desc valuta;desc produse;
insert
insert
insert
select
insert
insert
insert
select
insert
insert
insert
insert
insert
select
1','kg',10,5,1,100);
2','l',10,8,2,101);
3','kg',5,5,1,100);
4','m',10,5,3,102);
5','l',6,6,2,101);
END;
/
set serveroutput on;
select denval,sum(stoc*pret)SProd from produse,valuta where codval=codval2 group
by denval;
create or replace procedure valut is
val number;
den varchar2(20);
cursor a is select denval,sum(stoc*pret) from produse,valuta where codval=codval
2 group by denval;
begin
open a;
loop
fetch a into den,val;
exit when a%notfound;
DBMS_OUTPUT.PUT_LINE(den||' '||val);
end loop;
close a;
end;
/
execute valut;