Vous êtes sur la page 1sur 5

DROP

DROP
DROP
DROP
DROP
DROP

TABLE
TABLE
TABLE
TABLE
TABLE
TABLE

IF
IF
IF
IF
IF
IF

EXISTS
EXISTS
EXISTS
EXISTS
EXISTS
EXISTS

plati_amenzi ;
contraventie ;
permise ;
soferi ;
vehicule ;
localitati ;

CREATE TABLE localitati (


idLoc NUMERIC (5)
CONSTRAINT pk_localitati PRIMARY KEY
CONSTRAINT nn_idLoc NOT NULL,
denLoc VARCHAR (20)
CONSTRAINT nn_denLoc NOT NULL
CONSTRAINT ck_denLoc CHECK (denLoc = LTRIM(INITCAP(denLoc))),
jud CHAR (2)
CONSTRAINT ck_jud CHECK (jud = UPPER(jud))
CONSTRAINT nn_jud NOT NULL
) ;
CREATE TABLE vehicule (
idVeh NUMERIC (4)
CONSTRAINT pk_vehicule PRIMARY KEY
CONSTRAINT nn_idVeh NOT NULL,
nrInmatr CHAR (9)
CONSTRAINT ck_nrInmatr CHECK ((SUBSTR(nrInmatr,1,2) = UPPER(SUBSTR(nrInm
atr,1,2))) AND (SUBSTR(nrInmatr,7,3) = UPPER(SUBSTR(nrInmatr,7,3))))
CONSTRAINT nn_nrInmatr NOT NULL,
idLocInmatr NUMERIC (5)
CONSTRAINT nn_idLocInmatr NOT NULL
CONSTRAINT fk_vehicule_idLocInmatr REFERENCES localitati(idLoc),
serieSasiu VARCHAR (20)
CONSTRAINT ck_serieSasiu CHECK (serieSasiu = UPPER(serieSasiu))
CONSTRAINT nn_serieSasiu NOT NULL,
capacitCilindrica NUMERIC (4)
CONSTRAINT nn_capacitCilindrica NOT NULL
) ;
CREATE TABLE soferi (
idSofer NUMERIC (7)
CONSTRAINT pk_soferi PRIMARY KEY
CONSTRAINT nn_idSofer NOT NULL,
CNPSofer NUMERIC (13)
CONSTRAINT nn_CNPSofer NOT NULL,
numeSofer CHAR (30)
CONSTRAINT ck_numeSofer CHECK (SUBSTR(numeSofer,1,1) = UPPER(SUBSTR(nume
Sofer,1,1)))
CONSTRAINT nn_numeSofer NOT NULL,
dataNasterii DATE
CONSTRAINT nn_dataNasterii NOT NULL,
idLocSofer NUMERIC (5)
CONSTRAINT nn_idLocSofer NOT NULL
CONSTRAINT fk_soferi_idLocSofer REFERENCES localitati(idLoc)
) ;
CREATE TABLE permise (
idPermis NUMERIC (7)
CONSTRAINT pk_permise PRIMARY KEY
CONSTRAINT nn_idPermis NOT NULL,

dataEmiterii DATE
CONSTRAINT nn_dataEmiterii NOT NULL,
idSofer NUMERIC (7)
CONSTRAINT nn_idSofer NOT NULL
CONSTRAINT fk_permise_idSofer REFERENCES soferi(idSofer),
categ VARCHAR (3)
CONSTRAINT ck_categ CHECK (categ = UPPER(categ))
) ;
CREATE TABLE contraventie (
idContr NUMERIC (10)
CONSTRAINT pk_contraventie PRIMARY KEY
CONSTRAINT nn_idContr NOT NULL,
dataContr DATE
CONSTRAINT nn_dataContr NOT NULL,
idLocContr NUMERIC (5)
CONSTRAINT nn_idLocContr NOT NULL
CONSTRAINT fk_contraventie_idLocContr REFERENCES localitati(idLoc),
vitMaxLegala NUMERIC (3)
CONSTRAINT nn_vitMaxLegala NOT NULL,
vitezaEfectiva NUMERIC (3)
CONSTRAINT nn_vitezaEfectiva NOT NULL,
nrPctPenaliz NUMERIC (2)
CONSTRAINT nn_nrPctPenaliz NOT NULL,
valAmenda NUMERIC (5)
CONSTRAINT nn_valAmenda NOT NULL,
idSofer NUMERIC (7)
CONSTRAINT nn_idSofer NOT NULL
CONSTRAINT fk_contraventie_idSofer REFERENCES soferi(idSofer),
idVehicul NUMERIC (4)
CONSTRAINT nn_idVehicul NOT NULL
CONSTRAINT fk_contraventie_idVehicul REFERENCES vehicule(idVeh)
) ;
CREATE TABLE plati_amenzi (
idPlata NUMERIC (7)
CONSTRAINT pk_plati_amenzi PRIMARY KEY
CONSTRAINT nn_idPlata NOT NULL,
dataPlata DATE
CONSTRAINT nn_dataPlata NOT NULL,
docPlata VARCHAR (15)
CONSTRAINT nn_docPlata NOT NULL
CONSTRAINT ck_docPlata CHECK (docPlata = UPPER(docPlata)),
idLocPlata NUMERIC (5)
CONSTRAINT nn_idLocPlata NOT NULL
CONSTRAINT fk_plati_amenzi_idLocPlata REFERENCES localitati (idLoc),
idContr NUMERIC (10)
CONSTRAINT nn_idContr NOT NULL
CONSTRAINT fk_plati_amenzi_idContr REFERENCES contraventie(idContr),
valPlata NUMERIC (5)
CONSTRAINT nn_valPlata NOT NULL
) ;
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO
INTO
INTO

localitati
localitati
localitati
localitati
localitati
localitati
localitati

VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES

(1,'Timisoara','TM');
(2,'Tg. Mures','MS');
(3,'Botosani','BT');
(4,'Iasi','IS');
(5,'Constanta','CT');
(6,'Suceava','SV');
(7,'Brasov','BV');

INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO

localitati
localitati
localitati
localitati
localitati
localitati
localitati
localitati

VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES

INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO

vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule
vehicule

INSERT
INSERT
);
INSERT
INSERT
;
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO soferi VALUES (1,1651030235987,'Cretu Vasile',DATE'30/10/1965',4);


INTO soferi VALUES (2,2900925588845,'Apostol Vasilica',DATE'25/09/1990',9

INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO

soferi
soferi
soferi
soferi
soferi
soferi
soferi
soferi
soferi
soferi
soferi

INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO

permise
permise
permise
permise
permise
permise
permise
permise
permise
permise
permise
permise
permise
permise
permise

VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES

(8,'Roman','NT');
(9,'Focsani','VN');
(10,'Craiova','DJ');
(11,'Pascani','IS');
(12,'Letcani','IS');
(13,'Barlad','VS');
(14,'Galati','GL');
(15,'Bacau','BC');

(1,'IS-15-ABC',11,'K3345',1800);
(2,'VN-34-ANA',9,'SK345',2400);
(3,'BC-86-HTV',15,'RN4567',1200);
(4,'BT-16-AMC',3,'LD1456',2400);
(5,'TM-29-MTK',1,'OR495',2200);
(6,'VN-90-ELS',9,'LOR678',1200);
(7,'BC-27-PRO',15,'5JK78',2000);
(8,'IS-09-ELR',4,'SK049',2400);
(9,'IS-36-FHR',12,'VF36Y6',1600);
(10,'NT-33-FIA',8,'90D574',2400);
(11,'SV-65-WIO',6,'KR234',1200);
(12,'BC-43-PTF',15,'RK125',1600);
(13,'GL-45-RGT',14,'EP345',2400);
(14,'CT-03-XJT',5,'LR0594',2200);
(15,'DJ-57-ROC',10,'KE4567',1800);

INTO soferi VALUES (3,1700127425558,'Cojocaru Ioan',DATE'27/01/1970',15);


INTO soferi VALUES (4,1670513326589,'Nechita Vasile',DATE'13/05/1967',11)
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES

(5,2890702324789,'Popescu Alina',DATE'02/07/1989',5);
(6,2830315965478,'Ionescu Ionela',DATE'15/03/2983',2);
(7,1891231325697,'Manole Dorin',DATE'31/12/1989',8);
(8,2841116147856,'Sandu Amalia',DATE'16/11/1984',12);
(9,2870622254789,'Irimia Carmen',DATE'22/06/1987',7);
(10,1740404457863,'Ionita Vasile',DATE'04/04/1974',4);
(11,1771202245876,'Ursu Nicolae',DATE'02/12/1977',11);
(12,1690516254789,'Guzu Ioan',DATE'16/05/1969',9);
(13,1890319325694,'Lungu Mirel',DATE'19/03/1989',15);
(14,2880127124782,'Cucu Vasilica',DATE'27/01/1988',1);
(15,2830103254786,'Ignat Larisa',DATE'03/01/1983',11);
(1,DATE'16/03/2006',14,'A');
(2,DATE'23/09/1996',3,'B');
(3,DATE'25/04/1989',1,'C');
(4,DATE'03/10/2006',9,'B');
(5,DATE'09/12/2010',15,'B');
(6,DATE'19/02/2011',2,'C');
(7,DATE'29/09/2004',8,'A1');
(8,DATE'18/11/2007',7,'B');
(9,DATE'22/08/1996',4,'B');
(10,DATE'08/01/1999',11,'B1');
(11,DATE'04/05/2002',6,'C1');
(12,DATE'30/11/2009',5,'D');
(13,DATE'13/05/2008',13,'B');
(14,DATE'19/07/1998',10,'A');
(15,DATE'14/02/1991',1,'B');

INSERT INTO contraventie VALUES (1,DATE'15/05/2011',4,50,78,3,390,1,3);

INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO

contraventie
contraventie
contraventie
contraventie
contraventie
contraventie
contraventie
contraventie
contraventie
contraventie
contraventie
contraventie
contraventie
contraventie

VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES

(2,DATE'15/05/2010',8,120,180,6,930,4,5);
(3,DATE'15/05/2011',11,40,97,6,1300,8,2);
(4,DATE'28/04/2011',7,50,62,2,190,10,1);
(5,DATE'15/05/2010',12,110,150,4,570,11,9);
(6,DATE'09/10/2012',12,120,210,6,1800,15,4);
(7,DATE'15/05/2011',3,50,79,3,400,2,8);
(8,DATE'30/09/2012',15,80,111,4,590,12,6);
(9,DATE'18/12/2013',1,90,120,3,360,3,12);
(10,DATE'15/05/2011',9,70,95,3,420,13,7);
(11,DATE'15/05/2011',9,60,91,4,680,4,11);
(12,DATE'03/08/2012',15,70,89,2,240,3,15);
(13,DATE'15/05/2010',13,60,106,6,1400,2,10);
(14,DATE'15/05/2011',4,120,159,4,700,4,13);
(15,DATE'12/03/2013',15,90,125,4,620,12,14);

INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO

plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi
plati_amenzi

VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES

(1,DATE'18/05/2011','OP-AP2234',15,1,390);
(2,DATE'19/05/2010','OP-AR3547',2,2,730);
(3,DATE'15/05/2011','OP-BN2349',4,3,700);
(4,DATE'30/04/2011','OP-PR2490',8,4,190);
(5,DATE'20/05/2010','OP-ST3567',15,5,300);
(6,DATE'12/11/2012','OP-LN2901',1,6,1500);
(7,DATE'30/04/2011','OP-AB0943',7,7,400);
(8,DATE'10/10/2012','OP-CR2356',12,8,390);
(9,DATE'29/12/2014','OP-BD9037',6,9,360);
(10,DATE'20/05/2011','OP-LM8930',15,10,220);
(11,DATE'23/05/2011','OP-BC2673',5,11,480);
(12,DATE'05/08/2012','OP-DR3895',3,12,240);
(13,DATE'28/05/2010','OP-CD8574',9,13,1000);
(14,DATE'27/05/2011','OP-MD3264',11,14,550);
(15,DATE'24/04/2013','OP-TU3850',13,15,620);

SELECT datacontr,vitmaxlegala FROM contraventie WHERE vitmaxlegala=120;


SELECT SUM(valPlata) AS ValoarePlata FROM plati_amenzi AS pA INNER JOIN contrave
ntie c ON pA.idContr=c.idContr INNER JOIN soferi s ON c.idSofer=s.idSofer INNER
JOIN localitati l ON s.idLocSofer=l.idLoc WHERE denLoc='Iasi';
SELECT * FROM soferi WHERE numeSofer LIKE '%Vasil%';
SELECT categ,SUM(pa.valPlata) FROM plati_amenzi pA INNER JOIN contraventie c ON
pA.idContr=c.idContr INNER JOIN soferi s ON c.idSofer=s.idSofer INNER JOIN permi
se pm ON s.idSofer=pm.idSofer WHERE EXTRACT (YEAR FROM dataPlata) = 2010 GROUP B
Y categ ORDER BY categ;
SELECT numeSofer from(SELECT DISTINCT dataContr,numeSofer from contraventie c in
ner join soferi s on c.idSofer=s.idSofer where dataContr='15/05/2010' UNION sele
ct DISTINCT dataContr,numeSofer from contraventie c inner join soferi s on c.idS
ofer=s.idSofer where dataContr='15/05/2011')as C group by numeSofer having count
(numeSofer)=2
SELECT denLoc,Suma FROM (SELECT denLoc,SUM(valPlata) AS Suma FROM plati_amenzi p
lt INNER JOIN localitati lc ON plt.idLocPlata=lc.idLoc WHERE EXTRACT(YEAR FROM d
ataPlata)=2011 GROUP BY denLoc) AS p WHERE p.Suma>(SELECT SUM(valPlata) FROM pla
ti_amenzi AS pA INNER JOIN localitati L ON pA.idLocPlata=L.idLoc WHERE EXTRACT (
YEAR FROM dataPlata)=2011 AND denLoc='Bacau');
SELECT capacitCilindrica, COUNT (capacitCilindrica) AS cc FROM vehicule GROUP BY
capacitCilindrica HAVING COUNT(capacitCilindrica)>= ALL(SELECT COUNT(capacitCil
indrica) FROM vehicule GROUP BY capacitCilindrica);

SELECT jud FROM (SELECT DISTINCT jud,capacitCilindrica FROM localitati AS l INNE


R JOIN vehicule AS v ON l.idLoc=v.idLocInmatr WHERE capacitCilindrica IN(SELECT
DISTINCT capacitCilindrica FROM vehicule ORDER BY capacitCilindrica) ORDER BY ju
d) AS ABC GROUP BY jud HAVING COUNT(jud)=(SELECT COUNT(capacitCilindrica) FROM (
SELECT DISTINCT capacitCilindrica FROM vehicule ORDER BY capacitCilindrica) AS B
CD);
SELECT DISTINCT dataContr,denLoc,jud,vitezaEfectiva FROM contraventie c INNER JO
IN localitati l ON l.idLoc=c.idLocContr WHERE vitezaEfectiva>=ANY(SELECT DISTINC
T vitezaEfectiva FROM contraventie c INNER JOIN localitati l ON l.idLoc=c.idLocC
ontr WHERE jud='VN' AND denLoc='Focsani');

Vous aimerez peut-être aussi