0% found this document useful (0 votes)
11 views9 pages

NIRBHAYDBMS

DBMS project

Uploaded by

alone945y
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views9 pages

NIRBHAYDBMS

DBMS project

Uploaded by

alone945y
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Q.1.

Answer:-
(i):
create table NIRPERSON ( driver_id VARCHAR(20) Primary Key, name VARCHAR(100), address VARCHAR(100) );

create table NIRCAR (regno VARCHAR(20) Primary Key, model VARCHAR(100), year INT ); create table

NIRACCIDENT ( report_number NUMBER Primary Key, accident_date DATE, location VARCHAR(100) );

create table NIROWNS ( driver_id VARCHAR(20) Primary Key, regno VARCHAR(20));

Foreign Key (driver_id) REFERENCES NIRPERSON (driver_id), Foreign Key (regno) REFERENCES NIRCAR (regno));

create table NIRPARTICIPATED ( driver_id VARCHAR(20), regno VARCHAR(20), report_number INT, damage_amount INT,
Primary Key (driver_id, regno, report_number), Foreign Key (driver_id) REFERENCES NIRPERSON(driver_id), Foreign Key
(regno) REFERENCES NIRCAR(regno),

Foreign Key (report_number) REFERENCES NIRACCIDENT (report_number) );

Output of Q.1.(i)

Q.1.(ii) Insertion of tuples into each table.


-- Insert data into NIRPERSON insert into NIRPERSON (driver_id, name, address)

VALUES ('A52', Deepu, 'Bihar'); insert into NIRPERSON (driver_id, name, address)

VALUES ('A10', 'Adarsh', 'Delhi'); insert into NIRPERSON (driver_id, name, address)

VALUES ('A03', 'Piyush', 'Haryana'); insert into NIRPERSON (driver_id, name,

address) VALUES ('A04', 'Pranav', 'Lucknow'); insert into NIRPERSON (driver_id, name,

address) VALUES ('A40', NIRhil, 'Kolkata');

-- Insert data into NIRCAR insert into NIRCAR (regno, model, year) VALUES

('R001', 'Vitara Brezza', 2015); insert into NIRCAR (regno, model, year) VALUES

('R002', 'Kia Seltos', 2016); insert into NIRCAR (regno, model, year) VALUES

('R003', 'Tata Harrier', 2017); insert into NIRCAR (regno, model, year) VALUES

('R004', 'Renault Duster', 2018); insert into NIRCAR (regno, model, year) VALUES

('R005', 'MG Hector', 2019);

-- Insert data into NIRACCIDENT

insert into NIRACCIDENT (report_number, accident_date, location) VALUES (1, TO_DATE('2006-03-12', 'YYYY-MM-DD'),
'Bihar');

insert into NIRACCIDENT (report_number, accident_date, location) VALUES (2, TO_DATE('2006-10-19', 'YYYY-MM-DD'),
'Delhi');

insert into NIRACCIDENT (report_number, accident_date, location) VALUES (3, TO_DATE('2007-09-21', 'YYYY-MM-DD'),
'HNIRana');

insert into NIRACCIDENT (report_number, accident_date, location) VALUES (4, TO_DATE('2008-08-26', 'YYYY-MM-DD'),
'Lucknow');
insert into NIRACCIDENT (report_number, accident_date, location) VALUES (5, TO_DATE('2009-09-20', 'YYYY-MM-DD'),
'Kolkata');

-- Insert data into NIROWNS insert into NIROWNS (driver_id,

regno) VALUES ('A12', 'R001'); insert into NIROWNS

(driver_id, regno) VALUES ('A10', 'R002'); insert into

NIROWNS (driver_id, regno) VALUES ('A03', 'R003');

insert into NIROWNS (driver_id, regno) VALUES ('A04', 'R004');

insert into NIROWNS (driver_id, regno) VALUES ('A45', 'R005');

-- Insert data into NIRPARTICIPATED insert into NIRPARTICIPATED (driver_id, regno, report_number,

damage_amount) VALUES ('A12', 'R001', 1, 10000); insert into NIRPARTICIPATED (driver_id, regno,

report_number, damage_amount) VALUES ('A10', 'R002', 2, 15000); insert into NIRPARTICIPATED (driver_id,

regno, report_number, damage_amount) VALUES ('A03', 'R003', 3, 20000); insert into NIRPARTICIPATED

(driver_id, regno, report_number, damage_amount) VALUES ('A04', 'R004', 4, 25000); insert into

NIRPARTICIPATED (driver_id, regno, report_number, damage_amount) VALUES ('A45', 'R005', 5, 30000);

SELECT * FROM NIRCAR;

SELECT * FROM NIRACCIDENT;

SELECT * FROM NIRPERSON;

SELECT * FROM NIROWNS;

Output for 1(ii):-

DRIVER_ID REGNO
A52 R001
A10 R002
A03 R003
A04 R004
A40 R005

DRIVER_ID REGNO REPORT_NUMBER DAMAGE_AMOUNT


A12 R001 1 10000
A10 R002 2 15000
A03 R003 3 20000
A04 R004 4 25000
A45 R005 5 30000
A12 R001 6 5000

REPORT_NUMBER ACCIDENT_DATE LOCATION


1 12-Mar-06 Bihar
2 19-Oct-06 Delhi
3 21-Sep-07 Haryana
4 26-Aug-08 Lucknow
5 20-Sep-09 Kolkata

6 01-Jan-22 New Location

REGNO MODEL YEAR DRIVER_ID NAME ADDRESS


R001 Vitara Brezza 2015 A52 Deepu Bihar
A10 Adarsh Delhi
R002 Kia Seltos 2016
A03 Piyush Haryana
R003 Tata Harrier 2017
A04 Pranav Lucknow
R004 Renault Duster 2018
A40 NIRhil Kolkata
R005 MG Hector 2019

Q.1. (iii) (a). Demonstration of the updated damaged amount for the car with specific regno in
accident with report number 12 to 25000. update NIRPARTICIPATED SET damage_amount = 25000 WHERE
regno = 'specific_regno' AND report_number = 12;

(b). Adding a new accident to the database. insert into NIRACCIDENT (report_number, accident_date,
location) VALUES (6, TO_DATE('2022-01-01', 'YYYY-MM-DD'),
'New Location'); insert into NIRPARTICIPATED (driver_id, regno, report_number, damage_amount) VALUES ('A12',

'R001', 6, 5000);

Q.1.(iv). Total No. of people who owned cars that were involved in accidents involved in 2006.
select count(DISTINCT O.driver_id) AS Total_People

FROM NIROWNS O

JOIN NIRPARTICIPATED P ON O.regno = P.regno

JOIN NIRACCIDENT A ON P.report_number = A.report_number

WHERE EXTRACT(YEAR FROM A.accident_date) = 2006;


TOTAL_PEOPLE

Q.1.(V) Number of accidents in which cars belonging to a specific model were involved: select
count(DISTINCT NIRPARTICIPATED.report_number) AS Number_Of_Accidents
FROM NIRPARTICIPATED

JOIN NIRCAR ON NIRPARTICIPATED.regno = NIRCAR.regno

WHERE NIRCAR.model = 'specific_model';


NUMBER_OF_ACCIDENTS

Q.2.(i).Creating tables by properly specifying the primary key and foreign key. create

table NIRCUSTOMER ( CustNo INT Primary Key, Cname VARCHAR(50),City VARCHAR(100)); create table

NIRORDER ( OrderNo INT Primary Key, Odate DATE, CustNo INT , Ord_Amt INT, Foreign Key (CustNo)

REFERENCES NIRCUSTOMER(CustNo) ); create table NIRORDER_ITEM ( OrderNo INT, ItemNo INT, qty INT,

Primary Key (OrderNo, ItemNo),

Foreign Key (OrderNo) REFERENCES NIRORDER(OrderNo),

Foreign Key (ItemNo) REFERENCES NIRITEM(ItemNo) ); create

table NIRITEM ( ItemNo INT Primary Key, UnitPrice INT );

create table NIRSHIPMENT ( OrderNo INT, WarehouseNo INT, ShipDate DATE, Primary Key(OrderNo,
WarehouseNo),

Foreign Key (OrderNo) REFERENCES NIRORDER(OrderNo) ); create table

NIRWAREHOUSE ( WarehouseNo INT Primary Key, City VARCHAR(100) );

2.(ii)Entering 5 tuple values for each relation.


-- Insert data into ORDER insert into NIRORDER (OrderNo, Odate, CustNo, Ord_Amt) VALUES (101, TO_DATE('2023-01-01',

'YYYY-MM-DD'), 1, 500); insert into NIRORDER (OrderNo, Odate, CustNo, Ord_Amt) VALUES (102, TO_DATE('2023-02-01',

'YYYY-MM-DD'), 2, 700); insert into NIRORDER (OrderNo, Odate, CustNo, Ord_Amt) VALUES (103, TO_DATE('2023-03-01',

'YYYY-MM-DD'), 3, 300); insert into NIRORDER (OrderNo, Odate, CustNo, Ord_Amt) VALUES (104, TO_DATE('2023-04-01',

'YYYY-MM-DD'), 4, 600); insert into NIRORDER (OrderNo, Odate, CustNo, Ord_Amt) VALUES (105, TO_DATE('2023-05-01',

'YYYY-MM-DD'), 5, 800);

-- Insert data into CUSTOMER insert into NIRCUSTOMER (CustNo, Cname, City) VALUES

(1, 'John Doe', 'New York'); insert into NIRCUSTOMER (CustNo, Cname, City) VALUES

(2, 'Jane Smith', 'Los Angeles'); insert into NIRCUSTOMER (CustNo, Cname, City)

VALUES (3, 'Robert Brown', 'Chicago'); insert into NIRCUSTOMER (CustNo, Cname, City)

VALUES (4, 'Emily Davis', 'Houston'); insert into NIRCUSTOMER (CustNo, Cname, City)

VALUES (5, 'Michael Wilson', 'Phoenix');

-- Insert data into ITEM insert into NIRITEM (ItemNo,

UnitPrice) VALUES (1, 50); insert into NIRITEM (ItemNo,


UnitPrice) VALUES (2, 30); insert into NIRITEM (ItemNo,

UnitPrice) VALUES (3, 20); insert into NIRITEM (ItemNo,

UnitPrice) VALUES (4, 40); insert into NIRITEM (ItemNo,

UnitPrice) VALUES (5, 60);

-- Insert data into ORDER_ITEM insert into NIRORDER_ITEM (OrderNo,

ItemNo, qty) VALUES (101, 1, 5); insert into NIRORDER_ITEM

(OrderNo, ItemNo, qty) VALUES (102, 2, 7); insert into

NIRORDER_ITEM (OrderNo, ItemNo, qty) VALUES (103, 3, 3);

insert into NIRORDER_ITEM (OrderNo, ItemNo, qty) VALUES (104, 4, 6);

insert into NIRORDER_ITEM (OrderNo, ItemNo, qty) VALUES (105, 5, 8);

-- Insert data into SHIPMENT insert into NIRSHIPMENT (OrderNo, WarehouseNo, ShipDate) VALUES (101, 1,

TO_DATE('2023-01-01', 'YYYY-MM-DD')); insert into NIRSHIPMENT (OrderNo, WarehouseNo, ShipDate) VALUES (102, 2,

TO_DATE('2023-01-01', 'YYYY-MM-DD')); insert into NIRSHIPMENT (OrderNo, WarehouseNo, ShipDate) VALUES (103, 3,

TO_DATE('2023-01-01', 'YYYY-MM-DD')); insert into NIRSHIPMENT (OrderNo, WarehouseNo, ShipDate) VALUES (104, 4,

TO_DATE('2023-01-01', 'YYYY-MM-DD')); insert into NIRSHIPMENT (OrderNo, WarehouseNo, ShipDate) VALUES (105, 5,

TO_DATE('2023-01-01', 'YYYY-MM-DD'));

-- Insert data into WAREHOUSE insert into NIRWAREHOUSE (WarehouseNo,

City) VALUES (1, 'New York'); insert into NIRWAREHOUSE (WarehouseNo,

City) VALUES (2, 'Los Angeles'); insert into NIRWAREHOUSE (WarehouseNo,

City) VALUES (3, 'Chicago'); insert into NIRWAREHOUSE (WarehouseNo,

City) VALUES (4, 'Houston'); insert into NIRWAREHOUSE (WarehouseNo,

City) VALUES (5, 'Phoenix');

SELECT * FROM NIRWAREHOUSE;

SELECT * FROM NIRORDER;

SELECT * FROM NIRCUSTOMER;

SELECT * FROM NIRSHIPMENT;

SELECT * FROM NIRORDER_ITEM;

SELECT * FROM NIRITEM;


WAREHOUSENO CITY ORDERNO ODATE CUSTNO ORDAMT
1 New York 101 01-Jan-23 1 500
2 Los Angeles 102 01-Feb-23 2 700
3 Chicago 103 01-Mar-23 3 300
4 Houston 104 01-Apr-23 4 600
5 Phoenix 105 01-May-23 5 800

ORDERNO ITEMNO QTY CUSTNO CNAME CITY


101 1 5 1 John Doe New York
102 2 7 2 Jane Smith Los Angeles
103 3 3 3 Robert Brown Chicago
104 4 6 4 Emily Davis Houston
105 5 8 5 Michael Wilson Phoenix

ORDERNO WAREHOUSENO SHIPDATE ITEMNO UNITPRICE


101 1 01-Jan-23 1 50
102 2 01-Jan-23 2 30
103 3 01-Jan-23 3 20
104 4 01-Jan-23 4 40
105 5 01-Jan-23 5 60

Q.2.(iii). Produce a listing: CUSTNAME, NO_OF_ORDERS, AVG_ORDER_AMT

select Cname AS Customer_Name, count(OrderNo) AS Number_Of_Orders,

AVG(OrdAmt) AS Average_Order_Amount

FROM NIRCUSTOMER

JOIN NIRORDER ON NIRCUSTOMER.CustNo = NIRORDER.CustNo

GROUP BY Cname;
CUSTOMER_NAME NUMBER_OF_ORDERS AVERAGE_ORDER_AMOUNT

Emily Davis 1 600


Jane Smith 1 700
Robert Brown 1 300
John Doe 1 500
Michael Wilson 1 800
Q.2.(iv). List the Order# for the orders that were shipped from all the warehouses in a specific city select

DISTINCT OrderNo

FROM NIRSHIPMENT

JOIN NIRWAREHOUSE ON NIRSHIPMENT.WarehouseNo = NIRWAREHOUSE.WarehouseNo WHERE


NIRWAREHOUSE.City = 'New York';
ORDERNO

101

Q.2.(v).Demonstration of Deleting Item# 10 from the ITEM table and make that field null in the ORDER-ITEM table

update NIRORDER_ITEM SET ItemNo = NULL WHERE ItemNo = 10; delete from NIRITEM WHERE ItemNo = 10;

Q.3. Creation of table and performing operations on it:-


create table NIREmp ( e_no VARCHAR(20) , e_name VARCHAR(50), e_phone VARCHAR(15), e_addr VARCHAR(100),
e_salNIR INT );

-- i) Alter the data type of e_no from number to varchar (already created as VARCHAR)

-- ii) Alter table by setting e_no as primary key

alter table NIREmp add CONSTRAINT PK_NIREmp Primary Key (e_no);

-- iii) Alter table by adding a column e_pin

alter table NIREmp add e_pin VARCHAR(10);

-- iv) Update the phone number of an employee in the table update

NIREmp SET e_phone = '1234567890' WHERE e_no = 'E001';

Q.4. Creation of table and performing operations on it:-


-- Create the table

create table NIRDept ( dept_no INT, dept_name VARCHAR(50), e_no VARCHAR(20), dept_loc
VARCHAR(100), dept_hod VARCHAR(50), Primary Key (dept_no), Foreign Key (e_no) REFERENCES
NIREmp(e_no) );

-- i) Create the reference between Emp and Dept table with e_no attribute (done with FOREIGN KEY)
-- ii) Assign dept_no as primary key (already done in table creation)

-- iii) Update the dept_hod for one department update NIRDept SET

dept_hod = 'New HOD' WHERE dept_no = 1;

-- iv) Delete one department delete from

NIRDept WHERE dept_no = 2;

Q.5. Queries

(i) Finding the employee name and dept_hod whose dept_hod is John select NIREmp.e_name,

NIRDept.dept_hod FROM NIREmp JOIN NIRDept ON NIREmp.e_no = NIRDept.e_no

WHERE NIRDept.dept_hod = 'John';

(ii) Finding the average salNIR of the employee of CSE department select

AVG(NIREmp.e_salNIR) AS Average_SalNIR

FROM NIREmp JOIN NIRDept ON NIREmp.e_no = NIRDept.e_no WHERE NIRDept.dept_name = 'CSE';

AVERAGE_SALNIR

Q.6.Queries: -

(i) Displaying the records employee whose name starts with ‘a’. select * from NIREmp

WHERE e_name LIKE 'a%';

(ii) A query to show the save point and rollback operation: -

-- Assuming there is a table named NIREMP --

Create the EMP table for demonstration purposes

create table NIREMP ( e_no VARCHAR(20) Primary Key, e_name VARCHAR(50), e_phone VARCHAR2(30), e_addr
VARCHAR(100), e_salNIR NUMBER );

-- Insert initial data into EMP table

insert into NIREMP (e_no, e_name, e_phone, e_addr, e_salNIR) VALUES ('E001', 'Alice', '1234567890', '123 Maple St',
50000);

insert into NIREMP (e_no, e_name, e_phone, e_addr, e_salNIR) VALUES ('E002', 'Bob', '0987654321', '456 Oak St', 55000);
-- Starting a transaction and create a savepoint

BEGIN

-- Creating a savepoint

SAVEPOINT my_savepoint;

-- Performing some operations

insert into NIREMP (e_no, e_name, e_phone, e_addr, e_salNIR) VALUES ('E003', 'Charlie', '5556667777', '789 Pine St',
60000); update NIREMP SET e_salNIR = 58000 WHERE e_no =

'E001';

-- Rollback to the savepoint

ROLLBACK TO my_savepoint;

-- Commit the transaction

COMMIT; END;

SELECT * FROM NIREMP;


E_NO E_NAME E_PHONE E_ADDR E_SALNIR
E001 Alice 1.23E+09 123 Maple St 58000
E002 Bob 9.88E+08 456 Oak St 55000
E003 Charlie 5.56E+09 789 Pine St 60000

(iii) To calculate 4^5 (which means 4 raised to the power of 5), so we


can use the POWER function in SQL. select POWER(4, 5) AS Result FROM
DUAL;
RESULT
1024

(iv) Displaying the system date:- select SYSDATE AS System_Date FROM


DUAL;
SYSTEM_DATE

27-Jul-24

You might also like