## Lab 4 - OracleDB ### Verifying the existence of the previous labs' DB. ```sql SQL> select table_name from user_tables; TABLE_NAME -------------------------------------------------------------------------------- ACCIDENT CAR OWNS PARTICIPATED PERSON ``` ### Q1. Find the total number of people who owned cars that were involved in accidents in 2008. Ans. Modifying the table to add required entry from 2008. ```sql SQL> select * from accident; REPORT_NUMBER ACCD_DATE LOCATION ------------- --------- -------------------------------------------------- 1 01-JAN-24 Delhi India 3 29-FEB-24 India 5 31-MAR-00 Gujrat India 12 17-JUL-00 karnataka India 10 01-JAN-08 Manipal India SQL> update accident set ACCD_DATE='01-Jan-2008' where REPORT_NUMBER=1 2 ; 1 row updated. SQL> select * from accident; REPORT_NUMBER ACCD_DATE LOCATION ------------- --------- -------------------------------------------------- 1 01-JAN-08 Delhi India 3 29-FEB-24 India 5 31-MAR-00 Gujrat India 12 17-JUL-00 karnataka India 10 01-JAN-08 Manipal India ``` ```sql SQL> select count(distinct Driver_ID#) from participated natural join accident where extract(year from accd_date)=2008; COUNT(DISTINCTDRIVER_ID#) ------------------------- 1 ``` ### Q2. Find the number of accidents in which cars belonging to a specific model were involved. Ans. ```sql SQL> select * from car; REGNO MODEL YEAR -------------------- ------------------------------ ---------- ABCD0001 Celtos 3 EFGH2001 Ferrari 32 DSDS0001 Urus 5 ABCD4001 Honda City 1 HFSP5601 mini cooper 7 SQL> select count(distinct driver_id#) from car natural join participated where model like 'Urus'; COUNT(DISTINCTDRIVER_ID#) ------------------------- 1 ``` ### Q3. Produce a listing with header as OWNER_NAME, No. of Accidents, and Total Damage Amount in a descending order on total damage. Ans. ```sql SQL> select name as OWNER_NAME,count(distinct DRIVER_ID#),sum(Damage_amount) as total_Damage from person natural join participated group by(name) order by(TOTAL_DAMAGE) DESC; OWNER_NAME COUNT(DISTINCTDRIVER_ID#) TOTAL_DAMAGE ---------- ------------------------- ------------ Amogh 1 26500 Rohan 1 10000 Ramesh 1 150 ``` ### Q4. List the Owners who made more than 2 accidents in a year. Ans. ```sql SQL> insert into participated values(1236,'DSDS0001',99,100000000); 1 row created. SQL> select name,extract(year from accd_date) as year,count(report_number) as total_accidents from person natural join participated join accident using (report_number) group by(name,extract(year from accd_date)) having count(report_number)>=2; NAME YEAR TOTAL_ACCIDENTS ---------- ---------- --------------- Ramesh 2024 2 ``` ### Q5. List the owners who are not involved in any accident. Ans. ```sql SQL> select name from person where(driver_id#) not in(select driver_id# from participated); NAME ---------- Rohit Saarthak ```