Sunteți pe pagina 1din 4

Studiu de caz- Implimentare in ORACLE

Student : Lazari Vladislav

Anul 2017
CREATE TABLE Clienti (cod_cl number(10) CONSTRAINT pk_cl_cod_cl PRIMARY KEY
CONSTRAINT nn_cl_cod_cl NOT NULL, denumire varchar2(20), tip_cl varchar2(25)
CONSTRAINT ck_clienti_tip_cl CHECK (tip_cl IN ('persoana fizica','persoana juridica')), judet
varchar2(2) CONSTRAINT ck_clienti_judet CHECK (judet=UPPER(judet)), localitate
varchar2(30), cod_p Varchar2 (6), strada Varchar2(30), nr number(4), telefon varchar2(10), CNP
number(14), CUI varchar2(10), J varchar2(12));
INSERT INTO Clienti (cod_cl, denumire, tip_cl, judet, localitate, cod_p, strada, nr, telefon, cnp)
VALUES (1,'Anghel Mihai','persoana fizica', 'TM', 'Timisoara', 300275, 'Calea Sagului', 20,
'0720187591',1960202256656);
INSERT INTO Clienti (cod_cl, denumire, tip_cl, judet, localitate, cod_p, strada, nr, telefon, cnp)
VALUES (2,'Popescu Gabriela','persoana fizica', 'SV', 'Suceava', 200789, 'Strada Libertatii', 26,
'0720457191',2900320332512);
INSERT INTO Clienti (cod_cl, denumire, tip_cl, judet, localitate, cod_p, strada, nr, telefon, cnp)
VALUES (3,'Crisan Gabriel','persoana fizica', 'TL', 'Tulcea', 503718, 'Aleea Doinei', 28,
'0767128627',1890204364720);
INSERT INTO Clienti (cod_cl, denumire, tip_cl, judet, localitate, cod_p, strada, nr, telefon, cui,
j) VALUES (4,'SC.Imob SRL','persoana juridica', 'TM', 'Timisoara', 300186, 'Strada Alexandru
V.', 26, '0256969621', 'RO7185199', 'J80/251/1993');
SELECT * FROM Clienti;

CREATE TABLE Vanzatori (cod_vz number(4) CONSTRAINT pk_vanzatori_cod_vz


PRIMARY KEY CONSTRAINT nn_vanzatori_cod_vz NOT NULL, denumire varchar2(30));
INSERT INTO Vanzatori VALUES (1,'Mincu Adela');
INSERT INTO Vanzatori VALUES (2,'Braham Cosmin');
INSERT INTO Vanzatori VALUES (3,'Stancu Filip');
INSERT INTO Vanzatori VALUES (4,'Furdiu Iulia');
SELECT * FROM Vanzatori;

CREATE TABLE Produse (cod_prod number(6) CONSTRAINT pk_produsec PRIMARY KEY,


cod_cl number(10) CONSTRAINT fk_produsec_clientic REFERENCES
Clienti(cod_cl),data_inch date, obiectul_cump varchar2(20), perioada varchar2(30), cod_vz
number(4) CONSTRAINT fk_produsec_agenti REFERENCES
Vanzatori(cod_vz),tip_prod varchar2(20),mod_plata varchar2(20));
INSERT INTO Produse (cod_prod,cod_cl,data_inch,obiectul_cump,perioada,cod_vz,tip_prod,
mod_plata) VALUES (1, 1, to_date('20/12/2016','dd/mm/yyyy'),'CD',
'30.12.2016-30.01.2017',3,'muzica','cash');
INSERT INTO Produse (cod_prod,cod_cl,data_inch,obiectul_cump,perioada,cod_vz,tip_prod,
mod_plata) VALUES (3, 4, to_date('11/12/2016','dd/mm/yyyy'),'Mouse',
'30.12.2016-30.01.2017',3,'electronice','cash');
INSERT INTO Produse (cod_prod,cod_cl,data_inch,obiectul_cump,perioada,cod_vz,tip_prod,
mod_plata) VALUES (2, 2, to_date('15/12/2016','dd/mm/yyyy'),'Telefon',
'30.12.2016-30.01.2017',3,'electronice','cash');
INSERT INTO Produse (cod_prod,cod_cl,data_inch,obiectul_cump,perioada,cod_vz,tip_prod,
mod_plata) VALUES (4, 3, to_date('10/01/2017','dd/mm/yyyy'),'Pahare',
'30.12.2016-30.01.2017',3,'bucatarie','ordin de plata');

CREATE SEQUENCE seq_cod_plata INCREMENT BY 1 MINVALUE 1 MAXVALUE


5555555 NOCYCLE NOCACHE ORDER;

CREATE TABLE Plati (cod_plata number(7) CONSTRAINT pk_plata_cod_p PRIMARY KEY,


datap date, cod_prod number(6) CONSTRAINT fk_platac_asiguraric REFERENCES
Produse(cod_prod), valoare number(10), tip_plata varchar2(10));
INSERT INTO Plati (cod_plata,datap,cod_prod,valoare,tip_plata) VALUES
(seq_cod_plata.NextVal,to_date('20/12/2016','dd/mm/yyyy'),1,50,'cash');
INSERT INTO Plati (cod_plata,datap,cod_prod,valoare,tip_plata) VALUES
(seq_cod_plata.NextVal,to_date('11/12/2016','dd/mm/yyyy'),3,200,'cec');
INSERT INTO Plati (cod_plata,datap,cod_prod,valoare,tip_plata) VALUES
(seq_cod_plata.NextVal,to_date('15/12/2016','dd/mm/yyyy'),2,1500,'cash');
INSERT INTO Plati (cod_plata,datap,cod_prod,valoare,tip_plata) VALUES
(seq_cod_plata.NextVal,to_date('10/01/2017','dd/mm/yyyy'),4,150,'cash');
SELECT * FROM Plati;

SELECT * FROM user_sequences;


CREATE SEQUENCE seq_pv INCREMENT BY 1 MINVALUE 1 MAXVALUE 5555
NOCYCLE NOCACHE ORDER;

CREATE TABLE Retur (cod_re number(6) CONSTRAINT pk_retur PRIMARY KEY, data_re
date, motiv varchar2(50), cod_prod number(6) CONSTRAINT fk_pv_cod_prod REFERENCES
Produse(cod_prod));
INSERT INTO Retur (cod_re,data_re,motiv,cod_prod) VALUES (1,'18/feb/2017','garantie',3);
INSERT INTO Retur (cod_re,data_re,motiv,cod_prod) VALUES (2,'20/dec/2016','stricat',2);
SELECT * FROM Retur;
CREATE TABLE timp (timp_id DATE CONSTRAINT pk_timpc PRIMARY KEY, an
NUMBER(4), luna NUMBER(2) CONSTRAINT ck_lunac CHECK (luna>=1 and luna<=12));

CREATE TABLE plata (tip_plata VARCHAR2(10) CONSTRAINT pk_plata_id PRIMARY


KEY CONSTRAINT ck_tip_plata CHECK (tip_plata='cec' or tip_plata='cash'));

CREATE TABLE ob_cump (obiectul_cump VARCHAR2(25) CONSTRAINT pk_ob_cump


PRIMARY KEY);

CREATE TABLE Cumparare (timp_id DATE CONSTRAINT fk_contractec_timpc


REFERENCES timp(timp_id), plata_id VARCHAR2(10) CONSTRAINT fk_facturic_plata
REFERENCES plata(tip_plata), obiect_id VARCHAR2(25)
CONSTRAINT fk_facturic_obiect_prod REFERENCES ob_cump(obiectul_cump), count_suma
number(4), sum_suma number(12),
CONSTRAINT pk_facturic PRIMARY KEY(timp_id, plata_id, obiect_id));

INSERT INTO timp SELECT data_re, EXTRACT (YEAR FROM data_re), EXTRACT
(MONTH FROM data_re) FROM Retur GROUP BY data_re;
INSERT INTO plata SELECT DISTINCT tip_plata FROM Plati;
INSERT INTO ob_cump SELECT DISTINCT obiectul_cump FROM Produse;
INSERT INTO Cumparare
SELECT data_re, tip_plata, obiectul_cump, COUNT(valoare), SUM(valoare)
FROM Produse, Plati, Vanzatori, Clienti, Retur
WHERE Clienti.cod_cl=Produse.cod_cl AND Produse.cod_vz=Vanzatori.cod_vz AND
Produse.cod_prod=Plati.cod_prod
GROUP BY data_re, tip_plata,obiectul_cump;

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