Prog 1
Prog 1
Consider the insurance database given below..The primary keys are underlined and the data types are
specified :
PERSON(driver-id:string,name:string,address:string)
CAR(Regno:string,model:string,year:int)
ACCIDENT(Report-number:int,date:date,location:string)
OWNS(driver-id:string,regno:string)
PARTICIPATED(driver-id:string,regno:string,report-number:int,damage-amount:int)
1)create the above tables by properly specifying the primaru keys and the foreign keys
2)enter atleast five tupels for each relation
3)demonstrate how you
a)update the damage amount for the car with a specified regno in accident with report number 12 to 25000
b)add a new accident to the database
4)find the total numberof people who owned cars that were involved in accidents in 2002..
5)find the number of accidents in which cars belonging to a specific model were involved.
TABLE CREATION:
1.PERSON TABLE:
CREATE TABLE PERSON111
(
DRIVER_ID VARCHAR(3),
NAME VARCHAR(10) NOT NULL,
ADDRESS VARCHAR(20) NOT NULL,
PRIMARY KEY(DRIVER_ID)
);
2.CAR TABLE:
CREATE TABLE CAR111
(
RNO VARCHAR(5),
MODEL VARCHAR(10) NOT NULL,
YEAR INT NOT NULL,
PRIMARY KEY(RNO)
);
3.ACCIDENT TABLE:
CREATE TABLE ACCIDENT111
(
RPNO INT,
DATE1 DATE NOT NULL,
LOC VARCHAR(20) NOT NULL,
PRIMARY KEY(RPNO)
);
4.OWNS TABLE:
CREATE TABLE OWNS111
(
DRIVER_ID VARCHAR(5),
RNO VARCHAR(5),
FOREIGN KEY(DRIVER_ID) REFERENCES PERSON111(DRIVER_ID),
FOREIGN KEY(RNO) REFERENCES CAR111(RNO),
PRIMARY KEY(DRIVER_ID,RNO)
);
5.PARTICIPATED TABLE:
CREATE TABLE PARTICIPATED111
(
DRIVER_ID VARCHAR(3),
RNO VARCHAR(5),
RPNO INT,
AMOUNT INT NOT NULL,
FOREIGN KEY(DRIVER_ID) REFERENCES PERSON111(DRIVER_ID),
FOREIGN KEY(RNO) REFERENCES CAR111(RNO),
FOREIGN KEY(RPNO) REFERENCES ACCIDENT111(RPNO),
PRIMARY KEY(DRIVER_ID,RNO,RPNO)
);
TABLE FILLING:
1.INSERT TO PERSON
TABLE CONTENTS:
PERSON TABLE
SELECT *FROM PERSON111;
ACCIDENT TABLE
SELECT *FROM ACCIDENT111;
DID RNO
----- -----
D1 C1
D2 C2
D3 C3
D4 C4
D5 C5
PARTICIPATED TABLE
QUERIES
//1.Query to update damage amount to 25000
SOLUTION:
update PARTICIPATED111 set AMOUNT=25000 where RNO='C1' and RPNO=1;
SOLUTION:
insert into accident111 values
(6,'14-MAY-98','Blore');
SOLUTION:
SELECT COUNT(DISTINCT P.DRIVER_ID) ACCIDENT_OWNERS FROM ACCIDENT111
A,PARTICIPATED111 P,OWNS111 O
WHERE A.RPNO=P.RPNO AND
P.DRIVER_ID=O.DRIVER_ID AND
A.DATE1 LIKE '%05';
ACCIDENT_OWNERS
---------------
2
//4.To find accidents belonging to specific model
SOLUTION:
SELECT COUNT(C.RNO) ACCIDENTS FROM CAR111 C,PARTICIPATED111 P
WHERE C.RNO=P.RNO AND
C.MODEL LIKE '%FORD';
ACCIDENTS
----------
1