You are on page 1of 32

PROGRAM LIST

Sl. No. Title

1 Insurance Database

2 Order Processing Database

3 Student Enrolment Database

4 Book Dealer Database

5 Bank Database
PROGRAM 1: INSURANCE DATABASE

I. 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)

i) Create the above tables by properly specifying the primary keys and the foreign
keys.

SQL>create table person(driverid char(10) primary key, name char(20), address


char(30));
Table created.

SQL>create table car(regno char(10) primary key, model char(10), year number(4));
Table created.

SQL>create table accident(reportno number(5) primary key, accd_date date, location


char(20));
Table created.

SQL> create table owns(driverid char(10), regno char(10), primary key(driverid,regno),


foreign key(driverid) references
person(driverid), foreign key(regno) references car(regno));
Table created.

SQL>create table participated(driverid char(10), regno char(10), reportno number(5),


damage_amt number(5), primary key(driverid,regno,reportno),
foreign key(driverid) references person(driverid),
foreign key(regno) references car(regno),
foreign key(reportno) references accident(reportno));
Table created.

ii) Enter at least five tuples for each relation.

SQL> insert into person values('&driverid','&name','&address');


Enter value for driverid: A01
Enter value for name: Richard
Enter value for address: Srinivas Nagar
old 1: insert into person values('&driverid','&name','&address')
new 1: insert into person values('A01','Richard','Srinivas Nagar')
1 row created.

SQL> /
Enter value for driverid: A02
Enter value for name: Pradeep
Enter value for address: Rajajinagar
old 1: insert into person values('&driverid','&name','&address')
new 1: insert into person values('A02','Pradeep','Rajajinagar')
1 row created.

SQL> /
Enter value for driverid: A03
Enter value for name: Smith
Enter value for address: Ashoknagar
old 1: insert into person values('&driverid','&name','&address')
new 1: insert into person values('A03','Smith','Ashoknagar')
1 row created.

SQL> /
Enter value for driverid: A04
Enter value for name: Venu
Enter value for address: N.R.Colony
old 1: insert into person values('&driverid','&name','&address')
new 1: insert into person values('A04','Venu','N.R.Colony')
1 row created.

SQL> /
Enter value for driverid: A05
Enter value for name: John
Enter value for address: Hanumanth Nagar
old 1: insert into person values('&driverid','&name','&address')
new 1: insert into person values('A05','John','Hanumanth Nagar')
1 row created.

SQL> select * from person;


DRIVERID NAME ADDRESS
---------- -------------------- ------------------------------
A01 Richard Srinivas Nagar
A02 Pradeep Rajajinagar
A03 Smith Ashoknagar
A04 Venu N.R.Colony
A05 John Hanumanth Nagar

SQL> insert into car values('&regno', '&model', &year);


Enter value for regno: KA052250
Enter value for model: Indica
Enter value for year: 1990
old 1: insert into car values('&regno','&model',&year)
new 1: insert into car values('KA052250','Indica',1990)
1 row created.

SQL> /
Enter value for regno: KA031181
Enter value for model: Lancer
Enter value for year: 1957
old 1: insert into car values('&regno','&model',&year)
new 1: insert into car values('KA031181','Lancer',1957)
1 row created.

SQL> /
Enter value for regno: KA095477
Enter value for model: Toyota
Enter value for year: 1998
old 1: insert into car values('&regno','&model',&year)
new 1: insert into car values('KA095477','Toyota',1998)
1 row created.

SQL> /
Enter value for regno: KA053408
Enter value for model: Honda
Enter value for year: 2008
old 1: insert into car values('&regno','&model',&year)
new 1: insert into car values('KA053408','Honda',2008)
1 row created.

SQL> /
Enter value for regno: KA041702
Enter value for model: Audi
Enter value for year: 2005
old 1: insert into car values('&regno','&model',&year)
new 1: insert into car values('KA041702','Audi',2005)
1 row created.

SQL> select * from car;


REGNO MODEL YEAR
---------- ---------- ----------
KA052250 Indica 1990
KA031181 Lancer 1957
KA095477 Toyota 1998
KA053408 Honda 2008
KA041702 Audi 2005

SQL> insert into accident values(&reportno,'&accd_date','&location');


Enter value for reportno: 11
Enter value for adate: 01-JAN-03
Enter value for location: Mysore Road
old 1: insert into accident values(&reportno,'&accd_date','&location')
new 1: insert into accident values(111,'01-JAN-03','Mysore Road')
1 row created.

SQL> /
Enter value for reportno: 12
Enter value for adate: 02-FEB-04
Enter value for location: Southend Circle
old 1: insert into accident values(&reportno,'&accd_date','&location')
new 1: insert into accident values(112,'02-FEB-04','Southend Circle')
1 row created.

SQL> /
Enter value for reportno: 13
Enter value for adate: 21-JAN-03
Enter value for location: Bulltemple Road
old 1: insert into accident values(&reportno,'&accd_date','&location')
new 1: insert into accident values(113,'21-JAN-03','Bulltemple Road')
1 row created.

SQL> /
Enter value for reportno: 14
Enter value for adate: 17-FEB-08
Enter value for location: Mysore Road
old 1: insert into accident values(&reportno,'&accd_date','&location')
new 1: insert into accident values(114,'17-FEB-08','Mysore Road')
1 row created.

SQL> /
Enter value for reportno: 15
Enter value for adate: 04-MAR-05
Enter value for location: Kanakpura Road
old 1: insert into accident values(&reportno,'&accd_date','&location')
new 1: insert into accident values(115,'04-MAR-05','Kanakpura Road')
1 row created.

SQL> select * from accident;


REPORTNO ACCD_DATE LOCATION
---------- --------- --------------------
11 01-JAN-03 Mysore Road
12 02-FEB-04 Southend Circle
13 21-JAN-03 Bulltemple Road
14 17-FEB-08 Mysore Road
15 04-MAR-05 Kanakpura Road

SQL> insert into owns values('&driverid','&regno');


Enter value for driverid: A01
Enter value for regno: KA052250
old 1: insert into owns values('&driverid','&regno')
new 1: insert into owns values('A01','KA052250')
1 row created.

SQL> /
Enter value for driverid: A02
Enter value for regno: KA053408
old 1: insert into owns values('&driverid','&regno')
new 1: insert into owns values('A02','KA053408')
1 row created.
SQL> /
Enter value for driverid: A04
Enter value for regno: KA031181
old 1: insert into owns values('&driverid','&regno')
new 1: insert into owns values('A04','KA031181')
1 row created.

SQL> /
Enter value for driverid: A03
Enter value for regno: KA095477
old 1: insert into owns values('&driverid','&regno')
new 1: insert into owns values('A03','KA095477')
1 row created.

SQL> /
Enter value for driverid: A05
Enter value for regno: KA041702
old 1: insert into owns values('&driverid','&regno')
new 1: insert into owns values('A05','KA041702')
1 row created.

SQL> select * from owns;


DRIVERID REGNO
---------- ----------
A01 KA052250
A02 KA053408
A04 KA031181
A03 KA095477
A05 KA041702

SQL> insert into participated values('&driverid','&regno',&reportno,&damage_amount);


Enter value for driverid: A01
Enter value for regno: KA052250
Enter value for reportno: 11
Enter value for damage_amount: 10000
old 1: insert into participated values('&driverid','&regno',&reportno,&damage_amount)
new 1: insert into participated values('A01','KA052250',11,10000)
1 row created.

SQL> /
Enter value for driverid: A02
Enter value for regno: KA053408
Enter value for reportno: 12
Enter value for damage_amount: 50000
old 1: insert into participated values('&driverid','&regno',&reportno,&damage_amount)
new 1: insert into participated values('A02','KA053408',12,50000)
1 row created.

SQL> /
Enter value for driverid: A03
Enter value for regno: KA095477
Enter value for reportno: 13
Enter value for damage_amount: 25000
old 1: insert into participated values('&driverid','&regno',&reportno,&damage_amount)
new 1: insert into participated values('A03','KA095477',13,25000)
1 row created.

SQL> /
Enter value for driverid: A04
Enter value for regno: KA031181
Enter value for reportno: 14
Enter value for damage_amount: 3000
old 1: insert into participated values('&driverid','&regno',&reportno,&damage_amount)
new 1: insert into participated values('A04','KA031181',14,3000)
1 row created.

SQL> /
Enter value for driverid: A05
Enter value for regno: KA041702
Enter value for reportno: 15
Enter value for damage_amount: 5000
old 1: insert into participated values('&driverid','&regno',&reportno,&damage_amount)
new 1: insert into participated values('A05','KA041702',15,5000)
1 row created.

SQL> select * from participated;

DRIVERID REGNO REPORTNO DAMAGE_AMT


---------- ---------- ---------- ----------
A01 KA052250 11 10000
A02 KA053408 12 50000
A03 KA095477 13 25000
A04 KA031181 14 3000
A05 KA041702 15 5000

iii) Demonstrate how you


a. Update the damage amount for the car with a specific Regno in the accident with
report number 12 to 25000.

SQL> update participated set damage_amt=25000 where regno='KA053408' and reportno=12;


1 row updated.

SQL> select * from participated;


DRIVERID REGNO REPORTNO DAMAGEAMT
---------- ---------- ---------- ----------
A01 KA052250 11 10000
A02 KA053408 12 25000
A03 KA095477 13 25000
A04 KA031181 14 3000
A05 KA041702 15 5000

b. Add a new accident to the database.

SQL> insert into accident values(16,'15-MAR-08','Domlur');


1 row created.

SQL> select * from accident;


REPORTNO ACCD_DATE LOCATION
---------- --------- --------------------
11 01-JAN-03 Mysore Road
12 02-FEB-04 Southend Circle
13 21-JAN-03 Bulltemple Road
14 17-FEB-08 Mysore Road
15 04-MAR-05 Kanakpura Road
16 15-MAR-08 Domlur

iv) Find the total number of people who owned cars that involved in accidents in 2008.

SQL> select count(distinct driverid)as CNT from participated a, accident b where


a.reportno=b.reportno and b.adate like '%08';
CNT
----------
1

v) Find the number of accidents in which cars belonging to a specific model were
involved.
SQL> select count(reportno)as CNT from car c,participated p where c.regno=p.regno and
model='Lancer';

CNT
----------
1
PROGRAM 2: ORDER PROCESSING DATABASE

II. Consider the following relations for an Order Processing database application in
a company.

CUSTOMER (CUST #: int, cname: String, city: String)


ORDER (order #: int, odate: date, cust #: int, ord-Amt: int)
ITEM (item #: int, unit-price: int)
ORDER-ITEM (order #: int, item #: int, qty: int)
WAREHOUSE (warehouse #: int, city: String)
SHIPMENT (order #: int, warehouse #: int, ship-date: date)

i) Create the above tables by properly specifying the primary keys and the foreign keys
and the foreign keys.

SQL> create table customer(custno number(3) primary key,cname char(20),city char(20));


Table created.

SQL> create table item(itemno number(5) primary key,unitprice number(5));


Table created.

SQL> create table warehouse(warehouseno number(5) primary key,city char(20));


Table created.

SQL> create table orders(orderno number(5) primary key,odate date,custno


number(3),ordamt number(5),foreign key(custno) references customer(custno));
Table created.

SQL> create table order_item(orderno number(5),itemno number(5),qty number(3),foreign


key(orderno) references orders(orderno),foreign key(itemno) references item(itemno) on
delete set NULL);
Table created.

SQL> create table shipment(orderno number(5),warehouseno number(5),shipdate


date,foreign key(orderno) references orders(orderno),foreign key(warehouseno)
references warehouse(warehouseno));
Table created.

ii) Enter at least five tuples for each relation.

SQL> insert into customer values(&custno,'&cname','&city');


Enter value for custno: 771
Enter value for cname: PUSHPA K
Enter value for city: BANGALORE
old 1: insert into customer values(&custno,'&cname','&city')
new 1: insert into customer values(771,'PUSHPA K','BANGALORE')
1 row created.

SQL> /
Enter value for custno: 772
Enter value for cname: SUMAN
Enter value for city: MUMBAI
old 1: insert into customer values(&custno,'&cname','&city')
new 1: insert into customer values(772,'SUMAN','MUMBAI')
1 row created.
SQL> /
Enter value for custno: 773
Enter value for cname: SOURAV
Enter value for city: CALICUT
old 1: insert into customer values(&custno,'&cname','&city')
new 1: insert into customer values(773,'SOURAV','CALICUT')
1 row created.

SQL> /
Enter value for custno: 774
Enter value for cname: LAILA
Enter value for city: HYDERABAD
old 1: insert into customer values(&custno,'&cname','&city')
new 1: insert into customer values(774,'LAILA','HYDERABAD')
1 row created.

SQL> /
Enter value for custno: 775
Enter value for cname: FAIZAL
Enter value for city: BANGALORE
old 1: insert into customer values(&custno,'&cname','&city')
new 1: insert into customer values(775,'FAIZAL','BANGALORE')
1 row created.

SQL> select * from customer;


CUSTNO CNAME CITY
---------- -------------------- --------------------
771 PUSHPA K BANGALORE
772 SUMAN MUMBAI
773 SOURAV CALICUT
774 LAILA HYDERABAD
775 FAIZAL BANGALORE

SQL> insert into item values(&itemno,&unitprice);


Enter value for itemno: 5001
Enter value for unitprice: 503
old 1: insert into item values(&itemno,&unitprice)
new 1: insert into item values(5001,503)
1 row created.

SQL> /
Enter value for itemno: 5002
Enter value for unitprice: 750
old 1: insert into item values(&itemno,&unitprice)
new 1: insert into item values(5002,750)
1 row created.

SQL> /
Enter value for itemno: 5003
Enter value for unitprice: 150
old 1: insert into item values(&itemno,&unitprice)
new 1: insert into item values(5003,150)
1 row created.

SQL> /
Enter value for itemno: 5004
Enter value for unitprice: 600
old 1: insert into item values(&itemno,&unitprice)
new 1: insert into item values(5004,600)
1 row created.

SQL> /
Enter value for itemno: 5005
Enter value for unitprice: 890
old 1: insert into item values(&itemno,&unitprice)
new 1: insert into item values(5005,890)
1 row created.

SQL> select * from item;


ITEMNO UNITPRICE
---------- ----------
5001 503
5002 750
5003 150
5004 600
5005 890

SQL> insert into warehouse values(&warehouseno,'&city');


Enter value for warehouseno: 1
Enter value for city: DELHI
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(1,'DELHI')
1 row created.

SQL> /
Enter value for warehouseno: 2
Enter value for city: BOMBAY
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(2,'BOMBAY')
1 row created.

SQL> /
Enter value for warehouseno: 3
Enter value for city: CHENNAI
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(3,'CHENNAI')
1 row created.

SQL> /
Enter value for warehouseno: 4
Enter value for city: BANGALORE
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(4,'BANGALORE')
1 row created.

SQL> /
Enter value for warehouseno: 5
Enter value for city: BANGALORE
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(5,'BANGALORE')
1 row created.

SQL> /
Enter value for warehouseno: 6
Enter value for city: DELHI
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(6,'DELHI')
1 row created.

SQL> /
Enter value for warehouseno: 7
Enter value for city: BOMBAY
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(7,'BOMBAY')
1 row created.

SQL> /
Enter value for warehouseno: 8
Enter value for city: CHENNAI
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(8,'CHENNAI')
1 row created.

SQL> /
Enter value for warehouseno: 9
Enter value for city: DELHI
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(9,'DELHI')
1 row created.

SQL> /
Enter value for warehouseno: 10
Enter value for city: BANGALORE
old 1: insert into warehouse values(&warehouseno,'&city')
new 1: insert into warehouse values(10,'BANGALORE')
1 row created.

SQL> select * from warehouse;


WAREHOUSENO CITY
----------- --------------------
1 DELHI
2 BOMBAY
3 CHENNAI
4 BANGALORE
5 BANGALORE
6 DELHI
7 BOMBAY
8 CHENNAI
9 DELHI
10 BANGALORE

SQL> insert into orders values(&ordid,'&odate',&custno,&ordamt);


Enter value for ordid: 111
Enter value for odate: 22-JAN-02
Enter value for custno: 771
Enter value for ordamt: 18000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(111,'22-JAN-02',771,18000)
1 row created.

SQL> /
Enter value for ordid: 112
Enter value for odate: 30-JUL-02
Enter value for custno: 774
Enter value for ordamt: 6000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(112,'30-JUL-02',774,6000)
1 row created.

SQL> /
Enter value for ordid: 113
Enter value for odate: 03-APR-03
Enter value for custno: 775
Enter value for ordamt: 9000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(113,'03-APR-03',775,9000)
1 row created.

SQL> /
Enter value for ordid: 114
Enter value for odate: 03-NOV-03
Enter value for custno: 775
Enter value for ordamt: 29000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(114,'03-NOV-03',775,29000)
1 row created.

SQL> /
Enter value for ordid: 115
Enter value for odate: 10-DEC-03
Enter value for custno: 773
Enter value for ordamt: 29000.
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(115,'10-DEC-03',773,29000.)
1 row created.

SQL> /
Enter value for ordid: 116
Enter value for odate: 19-AUG-04
Enter value for custno: 772
Enter value for ordamt: 56000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(116,'19-AUG-04',772,56000)
1 row created.

SQL> /
Enter value for ordid: 117
Enter value for odate: 10-SEP-04
Enter value for custno: 771
Enter value for ordamt: 20000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(117,'10-SEP-04',771,20000)
1 row created.

SQL> /
Enter value for ordid: 118
Enter value for odate: 20-NOV-04
Enter value for custno: 775
Enter value for ordamt: 29000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(118,'20-NOV-04',775,29000)
1 row created.

SQL> /
Enter value for ordid: 119
Enter value for odate: 13-FEB-05
Enter value for custno: 774
Enter value for ordamt: 29000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(119,'13-FEB-05',775,29000)
1 row created.

SQL> /
Enter value for ordid: 120
Enter value for odate: 13-OCT-05
Enter value for custno: 775
Enter value for ordamt: 29000
old 1: insert into orders values(&ordid,'&odate',&custno,&ordamt)
new 1: insert into orders values(120,'13-OCT-05',775,29000)
1 row created.

SQL> select * from orders;


ORDERNO ODATE CUSTNO ORDAMT
---------- --------- ---------- ----------
111 22-JAN-02 771 18000
112 30-JUL-02 774 6000
113 03-APR-03 775 9000
114 03-NOV-03 775 29000
115 10-DEC-03 773 29000
116 19-AUG-04 772 56000
117 10-SEP-04 771 20000
118 20-NOV-04 775 29000
119 13-FEB-05 774 29000
120 13-OCT-05 775 29000

SQL> insert into order_item values(&orderno,&itemno,&qty);


Enter value for orderno: 111
Enter value for itemno: 5001
Enter value for qty: 50
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(111,5001,50)
1 row created.

SQL> /
Enter value for orderno: 112
Enter value for itemno: 5003
Enter value for qty: 20
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(112,5003,20)
1 row created.

SQL> /
Enter value for orderno: 113
Enter value for itemno: 5002
Enter value for qty: 50
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(113,5002,50)
1 row created.

SQL> /
Enter value for orderno: 114
Enter value for itemno: 5005
Enter value for qty: 60
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(114,5005,60)
1 row created.

SQL> /
Enter value for orderno: 115
Enter value for itemno: 5004
Enter value for qty: 90
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(115,5004,90)
1 row created.

SQL> /
Enter value for orderno: 116
Enter value for itemno: 5001
Enter value for qty: 10
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(116,5001,10)
1 row created.

SQL> /
Enter value for orderno: 117
Enter value for itemno: 5003
Enter value for qty: 80
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(117,5003,80)
1 row created.

SQL> /
Enter value for orderno: 118
Enter value for itemno: 5005
Enter value for qty: 50
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(118,5005,50)
1 row created.

SQL> /
Enter value for orderno: 119
Enter value for itemno: 5002
Enter value for qty: 10
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(119,5002,10)
1 row created.

SQL> /
Enter value for orderno: 120
Enter value for itemno: 5004
Enter value for qty: 45
old 1: insert into order_item values(&orderno,&itemno,&qty)
new 1: insert into order_item values(120,5004,45)
1 row created.

SQL> select * from order_item;


ORDERNO ITEMNO QTY
---------- ---------- ----------
111 5001 50
112 5003 20
113 5002 50
114 5005 60
115 5004 90
116 5001 10
117 5003 80
118 5005 50
119 5002 10
120 5004 45

SQL> insert into shipment values(&orderno,&warehouseno,'&shipdate');


Enter value for orderno: 111
Enter value for warehouseno: 1
Enter value for shipdate: 10-FEB-02
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(111,1,'10-FEB-02')
1 row created.

SQL> /
Enter value for orderno: 112
Enter value for warehouseno: 5
Enter value for shipdate: 10-SEP-02
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(112,5,'10-SEP-02')
1 row created.

SQL> /
Enter value for orderno: 113
Enter value for warehouseno: 8
Enter value for shipdate: 10-FEB-03
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(113,8,'10-FEB-03')
1 row created.

SQL> /
Enter value for orderno: 114
Enter value for warehouseno: 3
Enter value for shipdate: 10-DEC-03
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(114,3,'10-DEC-03')
1 row created.

SQL> /
Enter value for orderno: 115
Enter value for warehouseno: 9
Enter value for shipdate: 19-JAN-04
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(115,9,'19-JAN-04')
1 row created.

SQL> /
Enter value for orderno: 116
Enter value for warehouseno: 1
Enter value for shipdate: 20-SEP-04
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(116,1,'20-SEP-04')
1 row created.

SQL> /
Enter value for orderno: 117
Enter value for warehouseno: 5
Enter value for shipdate: 10-SEP-04
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(117,5,'10-SEP-04')
1 row created.

SQL> /
Enter value for orderno: 118
Enter value for warehouseno: 7
Enter value for shipdate: 30-NOV-04
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(118,7,'30-NOV-04')
1 row created.

SQL> /
Enter value for orderno: 119
Enter value for warehouseno: 7
Enter value for shipdate: 30-APR-05
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(119,7,'30-APR-05')
1 row created.

SQL> /
Enter value for orderno: 120
Enter value for warehouseno: 6
Enter value for shipdate: 21-DEC-05
old 1: insert into shipment values(&orderno,&warehouseno,'&shipdate')
new 1: insert into shipment values(120,6,'21-DEC-05')
1 row created.

SQL> select * from shipment;


ORDERNO WAREHOUSENO SHIPDATE
---------- ----------- ---------
111 1 10-FEB-02
112 5 10-SEP-02
113 8 10-FEB-03
114 3 10-DEC-03
115 9 19-JAN-04
116 1 20-SEP-04
117 5 10-SEP-04
118 7 30-NOV-04
119 7 30-APR-05
120 6 21-DEC-05

iii) Produce a listing: CUSTNAME, #oforders, AVG_ORDER_AMT, where the middle column is
the total numbers of orders by the customer and the last column is the average order
amount for that customer.
SQL> select cname as CUSTNAME,count(orderno) as NO_OF_ORDERS,avg(ordamt) as
AVG_ORD_AMT from customer a,order b where a.custno=b.custno group by cname;
CUSTNAME NO_OF_ORDERS AVG_ORD_AMT
-------------------- ------------ -------------
FAIZAL 4 24000
LAILA 2 17500
PUSHPA K 2 19000
SOURAV 1 29000
SUMAN 1 56000

iv) List the order# for orders that were shipped from all warehouses that the company
has in a specific city.

SQL> select * from orders where orderno in(select orderno from shipment where
warehouseno in(select warehouseno from warehouse where city='CHENNAI'));
ORDERNO ODATE CUSTNO ORDAMT
---------- --------- ---------- ----------
113 03-APR-03 775 9000
114 03-NOV-03 775 29000

v) Demonstrate how you delete item# 10 from the ITEM table and make that field null in
the ORDER_ITEM table.
SQL> delete from item1 where itemno=5001;
1 row deleted.
PROGRAM 3: STUDENT ENROLLMENT DATABASE

III. Consider the following database of student enrollment in courses and books
adopted for each course.

STUDENT (regno: String, name: String, major: String, bdate: date)


COURSE (course #: int, cname: String, dept: String)
ENROLL (regno: String, cname: String, sem: int, marks: int)
BOOK_ADOPTION (course #: int, sem: int, book-ISBN: int)
TEXT(book-ISBN:int, book-title:String, publisher:String, author:String)

i) Create the above tables by properly specifying the primary keys and the foreign
keys.

SQL>create table student(regno char(10) primary key,name char(20),major char(15),bdate


date);
Table created.

SQL>create table course(courseno number(5) primary key,cname char(20),dept char(10));


Table created.

SQL>create table enroll(regno char(10),courseno number(5),sem number(2),marks


number(3),primary key(regno,courseno),foreign key(regno) references
student(regno),foreign key(courseno) references course(courseno));
Table created.

SQL> create table text(book_isbn number(5) primary key,book_title char(50),publisher


char(25),author char(25));
Table created.

SQL> create table book_adoption(courseno number(5),sem number(2),book_isbn


number(5),foreign key(courseno) references course(courseno),foreign key(book_isbn)
references text(book_isbn));
Table created.

ii) Enter at least five tuples for each relation.

SQL> insert into student values('&regno','&name','&major','&bdate');


Enter value for regno: CS01
Enter value for name: RAM
Enter value for major: DS
Enter value for bdate: 12-MAR-86
old 1: insert into student values('&regno','&name','&major','&bdate')
new 1: insert into student values('CS01','RAM','DS','12-MAR-86')
1 row created.

SQL> /
Enter value for regno: IS02
Enter value for name: SMITH
Enter value for major: USP
Enter value for bdate: 23-DEC-87
old 1: insert into student values('&regno','&name','&major','&bdate')
new 1: insert into student values('IS02','SMITH','USP','23-DEC-87')
1 row created.

SQL> /
Enter value for regno: EC03
Enter value for name: AHMED
Enter value for major: SNS
Enter value for bdate: 17-APR-85
old 1: insert into student values('&regno','&name','&major','&bdate')
new 1: insert into student values('EC03','AHMED','SNS','17-APR-85')
1 row created.

SQL> /
Enter value for regno: CS03
Enter value for name: SNEHA
Enter value for major: DBMS
Enter value for bdate: 01-JAN-87
old 1: insert into student values('&regno','&name','&major','&bdate')
new 1: insert into student values('CS03','SNEHA','DBMS','01-JAN-87')
1 row created.

SQL> /
Enter value for regno: TC05
Enter value for name: AKHILA
Enter value for major: EC
Enter value for bdate: 06-OCT-86
old 1: insert into student values('&regno','&name','&major','&bdate')
new 1: insert into student values('TC05','AKHILA','EC','06-OCT-86')
1 row created.

SQL> select * from student;


REGNO NAME MAJOR BDATE
---------- -------------------- --------------- ---------
CS01 RAM DS 12-MAR-86
IS02 SMITH USP 23-DEC-87
EC03 AHMED SNS 17-APR-85
CS03 SNEHA DBMS 01-JAN-87
TC05 AKHILA EC 06-OCT-86

SQL> insert into course values(&courseno,'&cname','&dept');


Enter value for courseno: 11
Enter value for cname: DS
Enter value for dept: CS
old 1: insert into course values(&courseno,'&cname','&dept')
new 1: insert into course values(11,'DS','CS')
1 row created.

SQL> /
Enter value for courseno: 22
Enter value for cname: USP
Enter value for dept: IS
old 1: insert into course values(&courseno,'&cname','&dept')
new 1: insert into course values(22,'USP','IS')
1 row created.

SQL> /
Enter value for courseno: 33
Enter value for cname: SNS
Enter value for dept: EC
old 1: insert into course values(&courseno,'&cname','&dept')
new 1: insert into course values(33,'SNS','EC')
1 row created.

SQL> /
Enter value for courseno: 44
Enter value for cname: DBMS
Enter value for dept: CS
old 1: insert into course values(&courseno,'&cname','&dept')
new 1: insert into course values(44,'DBMS','CS')
1 row created.

SQL> /
Enter value for courseno: 55
Enter value for cname: EC
Enter value for dept: TC
old 1: insert into course values(&courseno,'&cname','&dept')
new 1: insert into course values(55,'EC','TC')
1 row created.

SQL> select * from course;


COURSENO CNAME DEPT
---------- ---------- ----------
11 DS CS
22 USP IS
33 SNS EC
44 DBMS CS
55 EC TC

SQL> insert into enroll values('&regno',&courseno,&sem,&marks);


Enter value for regno: CS01
Enter value for courseno: 11
Enter value for sem: 85
Enter value for marks: 4
old 1: insert into enroll values('&regno',&courseno,&sem,&marks)
new 1: insert into enroll values('CS01',11,4,85)
1 row created.

SQL> /
Enter value for regno: IS02
Enter value for courseno: 22
Enter value for sem: 80
Enter value for marks: 6
old 1: insert into enroll values('&regno',&courseno,&sem,&marks)
new 1: insert into enroll values('IS02',22,6,80)
1 row created.

SQL> /
Enter value for regno: EC03
Enter value for courseno: 33
Enter value for sem: 80
Enter value for marks: 2
old 1: insert into enroll values('&regno',&courseno,&sem,&marks)
new 1: insert into enroll values('EC03',33,2,80)
1 row created.

SQL> /
Enter value for regno: CS03
Enter value for courseno: 44
Enter value for sem: 75
Enter value for marks: 6
old 1: insert into enroll values('&regno',&courseno,&sem,&marks)
new 1: insert into enroll values('CS03',44,6,75)
1 row created.

SQL> /
Enter value for regno: TC05
Enter value for courseno: 55
Enter value for sem: 87
Enter value for marks: 2
old 1: insert into enroll values('&regno',&courseno,&sem,&marks)
new 1: insert into enroll values('TC05',55,2,87)
1 row created.

SQL> select * from enroll;


REGNO COURSENO SEM MARKS
---------- ---------- ---------- ----------
CS01 11 4 85
IS02 22 6 80
EC03 33 2 80
CS03 44 6 75
TC05 55 2 87

SQL> insert into text values(&book_isbn,'&book_title','&publish','&author');


Enter value for book_isbn: 1
Enter value for book_title: DS and C
Enter value for publish: Princeton
Enter value for author: Padma Reddy
old 1: insert into text values(&book_isbn,'&book_title','&publish','&author')
new 1: insert into text values(1,'DS and C','Princeton','Padma Reddy')
1 row created.

SQL> /
Enter value for book_isbn: 2
Enter value for book_title: Fundamentals of DS
Enter value for publish: Princeton
Enter value for author: Godse
old 1: insert into text values(&book_isbn,'&book_title','&publish','&author')
new 1: insert into text values(2,'Fundamentals of DS','Princeton','Godse')
1 row created.

SQL> /
Enter value for book_isbn: 3
Enter value for book_title: Fundamentals of DBMS
Enter value for publish: Princeton
Enter value for author: Navathe
old 1: insert into text values(&book_isbn,'&book_title','&publish','&author')
new1: insert into text values(3,'Fundamentals of DBMS','Princeton','Navathe')
1 row created.

SQL> /
Enter value for book_isbn: 4
Enter value for book_title: SQL
Enter value for publish: Princeton
Enter value for author: Foley
old 1: insert into text values(&book_isbn,'&book_title','&publish','&author')
new 1: insert into text values(4,'SQL','Princeton','Foley')
1 row created.

SQL> /
Enter value for book_isbn: 5
Enter value for book_title: Electronic circuits
Enter value for publish: TMH
Enter value for author: Elmasri
old 1: insert into text values(&book_isbn,'&book_title','&publish','&author')
new 1: insert into text values(5,'Electronic circuits','TMH','Elmasri')
1 row created.

SQL> /
Enter value for book_isbn: 5
Enter value for book_title: Electronic circuits
Enter value for publish: TMH
Enter value for author: Elmasri
old 1: insert into text values(&book_isbn,'&book_title','&publish','&author')
new 1: insert into text values(5,'Electronic circuits','TMH','Elmasri')
1 row created.

SQL> /
Enter value for book_isbn: 6
Enter value for book_title: Adv unix prog
Enter value for publish: TMH
Enter value for author: Stevens
old 1: insert into text values(&book_isbn,'&book_title','&publish','&author')
new 1: insert into text values(6,'Adv unix prog','TMH','Stevens')
1 row created.

SQL> select * from text;


BOOK_ISBN BOOK_TITLE PUBLISHER AUTHOR
--------- ---------------------- ------------------------- -----------------
1 DS and C Princeton Padma Reddy
2 Fundamentals of DS Princeton Godse
3 Fundamentals of DBMS Princeton Navathe
4 SQL Princeton Foley
5 Electronic circuits TMH Elmasri
6 Adv unix prog TMH Stevens

SQL> insert into book_adoption values(&courseno,&sem,&book_isbn);


Enter value for courseno: 11
Enter value for sem: 4
Enter value for book_isbn: 1
old 1: insert into book_adoption values(&courseno,&sem,&book_isbn)
new 1: insert into book_adoption values(11,4,1)
1 row created.

SQL> /
Enter value for courseno: 11
Enter value for sem: 4
Enter value for book_isbn: 2
old 1: insert into book_adoption values(&courseno,&sem,&book_isbn)
new 1: insert into book_adoption values(11,4,2)
1 row created.

SQL> /
Enter value for courseno: 44
Enter value for sem: 6
Enter value for book_isbn: 3
old 1: insert into book_adoption values(&courseno,&sem,&book_isbn)
new 1: insert into book_adoption values(44,6,3)
1 row created.

SQL> /
Enter value for courseno: 44
Enter value for sem: 6
Enter value for book_isbn: 4
old 1: insert into book_adoption values(&courseno,&sem,&book_isbn)
new 1: insert into book_adoption values(44,6,4)
1 row created.

SQL> /
Enter value for courseno: 55
Enter value for sem: 2
Enter value for book_isbn: 5
old 1: insert into book_adoption values(&courseno,&sem,&book_isbn)
new 1: insert into book_adoption values(55,2,5)
1 row created.

SQL> /
Enter value for courseno: 22
Enter value for sem: 6
Enter value for book_isbn: 6
old 1: insert into book_adoption values(&courseno,&sem,&book_isbn)
new 1: insert into book_adoption values(22,6,6)
1 row created.

SQL> select * from book_adoption;


COURSENO SEM BOOK_ISBN
---------- ---------- ----------
11 4 1
11 4 2
44 6 3
44 6 4
55 2 5
22 6 6

iii) Demonstrate how you add a new text book to the database and make this book be
adopted by some department.

SQL> insert into text values(7,'DBMS Intro','Pearson','Godse');


1 row created.

SQL> select * from text;


BOOK_ISBN BOOK_TITLE PUBLISHER AUTHOR
--------- ---------------------- ------------------------- -----------------
1 DS and C Princeton Padma Reddy
2 Fundamentals of DS Princeton Godse
3 Fundamentals of DBMS Princeton Navathe
4 SQL Princeton Foley
5 Electronic circuits TMH Elmasri
6 Adv unix prog TMH Stevens
7 DBMS Intro Pearson Godse

SQL> insert into book_adoption values(55,2,7);


1 row created.

SQL> select * from book_adoption;


COURSENO SEM BOOK_ISBN
---------- ---------- ----------
11 4 1
11 4 2
44 6 3
44 6 4
55 2 5
22 6 6
55 2 7

iv) Produce a list of text books (include Course #, Book-ISBN, Book-title) in the
alphabetical order for courses offered by the ‘CS’ department that use more than
two books.

SQL> select c.courseno Courseno,t.book_title BookTitle,t.book_isbn BookISBN from course


c,book_adoption b,text t where c.dept='CS' and c.courseno=b.courseno and
t.book_isbn=b.book_isbn and c.courseno in(select courseno from book_adoption group by
courseno having count(*)>1) order by t.book_title;

COURSENO BOOKTITLE BOOKISBN


---------- -------------------------------------------------- ----------
11 DS and C 1
44 Fundamentals of DBMS 3
11 Fundamentals of DS 2
44 SQL 4

v) List any department that has all its adopted books published by a specific
publisher.

SQL> select c.dept DEPT,t.publisher PUBLISHER from text t,book_adoption b,course c


where b.book_isbn=t.book_isbn and c.courseno=b.courseno and t.publisher='Princeton';

DEPT PUBLISHER
---------- -------------------------
CS Princeton
CS Princeton
CS Princeton
CS Princeton
PROGRAM 4: BOOK DEALER DATABASE

IV. The following tables are maintained by a book dealer:

AUTHOR(author-id: int, name: String, city: String, country: String)


PUBLISHER(publisher-id: int, name: String, city: String, country: String)
CATALOG(book-id: int, title: String, author-id: int, publisher-id: int, category-
id: int, year: int, price: int)
CATEGORY(category-id: int, description: String)
ORDER-DETAILS(order-no: int, book-id: int, quantity: int)

i) Create the above tables by properly specifying the primary keys and the foreign
keys.

SQL> create table author(authorid number(5) primary key,name char(20),city


char(20),country char(15));
Table created.

SQL> create table publisher(publisherid number(5) primary key,name char(20), city


char(20),country char(15));
Table created.

SQL> create table category(categoryid number(5) primary key, description char(20));


Table created.

SQL> create table catalog(bookid number(5) primary key,title char(20),authorid


number(5),publisherid number(5),categoryid number(5),year number(4),price
number(5),foreign key(authorid) references author(authorid), foreign key(publisherid)
references publisher(publisherid),foreign key(categoryid) references
category(categoryid));
Table created.

SQL> create table order_details(orderno number(5),bookid number(5),quantity


number(5),primary key(orderno,bookid),foreign key(bookid) references catalog1(bookid));
Table created.

ii) Enter at least five tuples for each relation.


SQL> insert into author values(&aid,'&name','&city','&country');
Enter value for aid: 1001
Enter value for name: TERAS CHAN
Enter value for city: CA
Enter value for country: USA
old 1: insert into author values(&aid,'&name','&city','&country')
new 1: insert into author values(1001,'TERAS CHAN','CA','USA')
1 row created.

SQL> /
Enter value for aid: 1002
Enter value for name: STEVENS
Enter value for city: ZOMBI
Enter value for country: UGANDA
old 1: insert into author values(&aid,'&name','&city','&country')
new 1: insert into author values(1002,'STEVENS','ZOMBI','UGANDA')
1 row created.
SQL> /
Enter value for aid: 1003
Enter value for name: M MANO
Enter value for city: CAIR
Enter value for country: CANADA
old 1: insert into author values(&aid,'&name','&city','&country')
new 1: insert into author values(1003,'M MANO','CAIR','CANADA')
1 row created.

SQL> /
Enter value for aid: 1004
Enter value for name: KARTHIK B.P.
Enter value for city: NEW YORK
Enter value for country: USA
old 1: insert into author values(&aid,'&name','&city','&country')
new 1: insert into author values(1004,'KARTHIK B.P.','NEW YORK','USA')
1 row created.

SQL> /
Enter value for aid: 1005
Enter value for name: WILLIAM STALLINGS
Enter value for city: LAS VEGAS
Enter value for country: USA
old 1: insert into author values(&aid,'&name','&city','&country')
new 1: insert into author values(1005,'WILLIAM STALLINGS','LAS VEGAS','USA')
1 row created.

SQL> select * from author;


AUTHORID NAME CITY COUNTRY
---------- -------------------- -------------------- ---------------
1001 TERAS CHAN CA USA
1002 STEVENS ZOMBI UGANDA
1003 M MANO CAIR CANADA
1004 KARTHIK B.P. NEW YORK USA
1005 WILLIAM STALLINGS LAS VEGAS USA

SQL> insert into publisher values(&pid,'&name','&city','&country');


Enter value for pid: 1
Enter value for name: PEARSON
Enter value for city: NEW YORK
Enter value for country: USA
old 1: insert into publisher values(&pid,'&name','&city','&country')
new 1: insert into publisher values(1,'PEARSON','NEW YORK','USA')
1 row created.

SQL> /
Enter value for pid: 2
Enter value for name: EEE
Enter value for city: NEW SOUTH VALES
Enter value for country: USA
old 1: insert into publisher values(&pid,'&name','&city','&country')
new 1: insert into publisher values(2,'EEE','NEW SOUTH VALES','USA')
1 row created.

SQL> /
Enter value for pid: 3
Enter value for name: PHI
Enter value for city: DELHI
Enter value for country: INDIA
old 1: insert into publisher values(&pid,'&name','&city','&country')
new 1: insert into publisher values(3,'PHI','DELHI','INDIA')
1 row created.

SQL> /
Enter value for pid: 4
Enter value for name: WILLEY
Enter value for city: BERLIN
Enter value for country: GERMANY
old 1: insert into publisher values(&pid,'&name','&city','&country')
new 1: insert into publisher values(4,'WILLEY','BERLIN','GERMANY')
1 row created.

SQL> /
Enter value for pid: 5
Enter value for name: MGH
Enter value for city: NEW YORK
Enter value for country: USA
old 1: insert into publisher values(&pid,'&name','&city','&country')
new 1: insert into publisher values(5,'MGH','NEW YORK','USA')
1 row created.
SQL> select * from publisher;
PUBLISHERID NAME CITY COUNTRY
----------- -------------------- -------------------- ---------------
1 PEARSON NEW YORK USA
2 EEE NEW SOUTH VALES USA
3 PHI DELHI INDIA
4 WILLEY BERLIN GERMANY
5 MGH NEW YORK USA

SQL> insert into category values(&cid,'&description');


Enter value for cid: 1001
Enter value for description: COMPUTER SCIENCE
old 1: insert into category values(&cid,'&description')
new 1: insert into category values(1001,'COMPUTER SCIENCE')
1 row created.

SQL> /
Enter value for cid: 1002
Enter value for description: ALGORITHM DESIGN
old 1: insert into category values(&cid,'&description')
new 1: insert into category values(1002,'ALGORITHM DESIGN')
1 row created.

SQL> /
Enter value for cid: 1003
Enter value for description: ELECTRONICS
old 1: insert into category values(&cid,'&description')
new 1: insert into category values(1003,'ELECTRONICS')
1 row created.

SQL> /
Enter value for cid: 1004
Enter value for description: PROGRAMMING
old 1: insert into category values(&cid,'&description')
new 1: insert into category values(1004,'PROGRAMMING')
1 row created.

SQL> /
Enter value for cid: 1005
Enter value for description: OPRATING SYSTEMS
old 1: insert into category values(&cid,'&description')
new 1: insert into category values(1005,'OPRATING SYSTEMS')
1 row created.

SQL> select * from category;


CATEGORYID DESCRIPTION
---------- --------------------
1001 COMPUTER SCIENCE
1002 ALGORITHM DESIGN
1003 ELECTRONICS
1004 PROGRAMMING
1005 OPRATING SYSTEMS

SQL> insert into catalog values(&bid,'&title',&aid,&pid,&cid,&year,&price);


Enter value for bid: 11
Enter value for title: Unix System Prg
Enter value for aid: 1001
Enter value for pid: 1
Enter value for cid: 1001
Enter value for year: 2000
Enter value for price: 250.50
old 1: insert into catalog values(&bid,'&title',&aid,&pid,&cid,&year,&price)
new1: insert into catalog values(11,'Unix System Prg',1001,1,1001,2000,250.5
0)
1 row created.
SQL> /
Enter value for bid: 12
Enter value for title: Digital Signals
Enter value for aid: 1002
Enter value for pid: 2
Enter value for cid: 1003
Enter value for year: 2001
Enter value for price: 425.22
old 1: insert into catalog values(&bid,'&title',&aid,&pid,&cid,&year,&price)
new1: insert into catalog values(12,'Digital Signals',1002,2,1003,2001,425.2
2)
1 row created.

SQL> /
Enter value for bid: 13
Enter value for title: Logic Design
Enter value for aid: 1003
Enter value for pid: 3
Enter value for cid: 1002
Enter value for year: 1999
Enter value for price: 225
old 1: insert into catalog values(&bid,'&title',&aid,&pid,&cid,&year,&price)
new 1: insert into catalog values(13,'Logic Design',1003,3,1002,1999,225)
1 row created.

SQL> /
Enter value for bid: 14
Enter value for title: Server Prg
Enter value for aid: 1004
Enter value for pid: 4
Enter value for cid: 1004
Enter value for year: 2001
Enter value for price: 332.56
old 1: insert into catalog values(&bid,'&title',&aid,&pid,&cid,&year,&price)
new 1: insert into catalog values(14,'Server Prg',1004,4,1004,2001,332.56)
1 row created.

SQL> /
Enter value for bid: 15
Enter value for title: Linux OS
Enter value for aid: 1005
Enter value for pid: 5
Enter value for cid: 1005
Enter value for year: 2003
Enter value for price: 325.58
old 1: insert into catalog values(&bid,'&title',&aid,&pid,&cid,&year,&price)
new 1: insert into catalog values(15,’Linux OS',1005,5,1005,2003,325.58)
1 row created.

SQL> /
Enter value for bid: 16
Enter value for title: C++ Bible
Enter value for aid: 1005
Enter value for pid: 5
Enter value for cid: 1001
Enter value for year: 2000
Enter value for price: 525.58
old 1: insert into catalog values(&bid,'&title',&aid,&pid,&cid,&year,&price)
new 1: insert into catalog values(16,'C++ Bible',1005,5,1001,2000,525.58)
1 row created.

SQL> /
Enter value for bid: 17
Enter value for title: COBOL Handbook
Enter value for aid: 1005
Enter value for pid: 4
Enter value for cid: 1001
Enter value for year: 2000
Enter value for price: 657.58
old 1: insert into catalog values(&bid,'&title',&aid,&pid,&cid,&year,&price)
new1: insert into catalog values(17,'COBOL Handbook',1005,4,1001,2000,657.58)
1 row created.

SQL> select * from catalog;


BOOKID TITLE AUTHORID PUBLISHERID CATEGORYID YEAR PRICE
---------- ---------------- -------- ----------- ---------- ---- ----------
11 Unix System Prg 1001 1 1001 2000 251
12 Digital Signals 1002 2 1003 2001 425
13 Logic Design 1003 3 1002 1999 225
14 Server Prg 1004 4 1004 2001 333
15 Linux OS 1005 5 1005 2003 326
16 C++ Bible 1005 5 1001 2000 526
17 COBOL Handbook 1005 4 1001 2000 658

SQL> insert into order_details values(&orderno,&bookid,&qunatity);


Enter value for orderno: 1
Enter value for bookid: 11
Enter value for qunatity: 5
old 1: insert into order_details values(&orderno,&bookid,&qunatity)
new 1: insert into order_details values(1,11,5)
1 row created.

SQL> /
Enter value for orderno: 2
Enter value for bookid: 12
Enter value for qunatity: 8
old 1: insert into order_details values(&orderno,&bookid,&qunatity)
new 1: insert into order_details values(2,12,8)
1 row created.

SQL> /
Enter value for orderno: 3
Enter value for bookid: 13
Enter value for qunatity: 15
old 1: insert into order_details values(&orderno,&bookid,&qunatity)
new 1: insert into order_details values(3,13,15)
1 row created.

SQL> /
Enter value for orderno: 4
Enter value for bookid: 14
Enter value for qunatity: 22
old 1: insert into order_details values(&orderno,&bookid,&qunatity)
new 1: insert into order_details values(4,14,22)
1 row created.

SQL> /
Enter value for orderno: 5
Enter value for bookid: 15
Enter value for qunatity: 3
old 1: insert into order_details values(&orderno,&bookid,&qunatity)
new 1: insert into order_details values(5,15,3)
1 row created.

SQL> select * from order_details;


ORDERNO BOOKID QUANTITY
---------- ---------- ----------
1 11 5
2 12 8
3 13 15
4 14 22
5 15 3
iii) Give the details of the authors who have 2 or more books in the catalog and the
price of the books in the catalog and the year of publication is after 2000.

SQL> select * from author where authorid in(select authorid from catalog1 group
by authorid having count(*) > 2 and authorid in(select authorid from catalog1
where price > (select avg(price) from catalog1) and year>=2000));

AUTHORID NAME CITY COUNTRY


---------- -------------------- -------------------- ---------------
1005 WILLIAM STALLINGS LAS VEGAS USA

iv) Find the author of the book which has maximum sales.

SQL> select name from author where authorid in(select authorid from catalog1 where
bookid in(select bookid from order_details where quantity=(select max(quantity) from
order_details)));

NAME
--------------------
KARTHIK B.P.

v) Demonstrate how you increase the price of books published by a specific publisher
by 10%.

SQL> select bookid,title,price,price*1.1 from catalog1;

BOOKID TITLE PRICE PRICE*1.1


---------- -------------------- ---------- ----------
11 Unix System Prg 251 276.1
12 Digital Signals 425 467.5
13 Logic Design 225 247.5
14 Server Prg 333 366.3
15 Linux OS 326 358.6
16 C++ Bible 526 578.6
17 COBOL Handbook 658 723.8

SQL> select bookid,title,price,price*1.1 from catalog1 where publisherid in(select


publisherid from publisher where name='PEARSON');

BOOKID TITLE PRICE PRICE*1.1


---------- -------------------- ---------- ----------
11 Unix System Prg 251 276.1
PROGRAM 5: BANKING ENTERPRISE DATABASE

V. Consider the following database for a banking enterprise.

BRANCH (branch-name: String, branch-city: String, assets: real)


ACCOUNTS (accno: int, branch-name: String, balance: real)
DEPOSITOR (customer-name: String, customer-street: String,
customer-city: String)
LOAN (loan-number: int, branch-name: String, amount: real)
BORROWER (customer-name: String, loan-number: int)

i) Create the above tables by properly specifying the primary keys and the foreign
keys.

SQL> create table branch(branch_name char(20) primary key,branch_city char(10),assets


real);
Table created.

SQL> create table account(accno number(5) primary key,branch_name char(20), balance


real,foreign key(branch_name) references branch(branch_name));
Table created.

SQL> create table customer(customer_name char(20) primary key, customer_street


char(20),cust_city char(20));
Table created.

SQL> create table depositor(customer_name char(20),accno number(5),foreign


key(customer_name) references customer(customer_name),foreign key(accno) references
account(accno) on delete set null);
Table created.

SQL>create table loan(loan_no number(5)primary key,branch_name char(20),amount


real,foreign key(branch_name)references branch(branch_name));
Table created.

SQL> create table borrower(customer_name char(20),loan_no number(5),foreign


key(customer_name) references customer(customer_name),foreign key(loan_no) references
loan(loan_no));
Table created.

ii) Enter at least five tuples for each relation.

SQL> insert into branch values('&bname','&bcity',&assets);


Enter value for bname: SBI PD NAGAR
Enter value for bcity: BANGALORE
Enter value for assets: 200000
old 1: insert into branch values('&bname','&bcity',&assets)
new 1: insert into branch values('SBI PD NAGAR','BANGALORE',200000)
1 row created.

SQL> /
Enter value for bname: SBI RAJAJI NAGAR
Enter value for bcity: BANGALORE
Enter value for assets: 500000
old 1: insert into branch values('&bname','&bcity',&assets)
new 1: insert into branch values('SBI RAJAJI NAGAR','BANGALORE',500000)
1 row created.
SQL> /
Enter value for bname: SBI JAYANAGAR
Enter value for bcity: BANGALORE
Enter value for assets: 660000
old 1: insert into branch values('&bname','&bcity',&assets)
new 1: insert into branch values('SBI JAYANAGAR','BANGALORE',660000)
1 row created.

SQL> /
Enter value for bname: SBI VIJAY NAGAR
Enter value for bcity: BANGALORE
Enter value for assets: 870000
old 1: insert into branch values('&bname','&bcity',&assets)
new 1: insert into branch values('SBI VIJAY NAGAR','BANGALORE',870000)
1 row created.

SQL> /
Enter value for bname: SBI HOSAKEREHALLI
Enter value for bcity: BANGALORE
Enter value for assets: 550000
old 1: insert into branch values('&bname','&bcity',&assets)
new 1: insert into branch values('SBI HOSAKEREHALLI','BANGALORE',550000)
1 row created.

SQL> select * from branch;


BRANCH_NAME BRANCH_CIT ASSETS
-------------------- ---------- ----------
SBI PD NAGAR BANGALORE 200000
SBI RAJAJI NAGAR BANGALORE 500000
SBI JAYANAGAR BANGALORE 660000
SBI VIJAY NAGAR BANGALORE 870000
SBI HOSAKEREHALLI BANGALORE 550000

SQL> insert into account values(&accno,'&bname',&balance);


Enter value for accno: 1234602
Enter value for bname: SBI HOSAKEREHALLI
Enter value for balance: 5000
old 1: insert into account values(&accno,'&bname',&balance)
new 1: insert into account values(1234602,'SBI HOSAKEREHALLI',5000)
1 row created.

SQL> /
Enter value for accno: 1234603
Enter value for bname: SBI VIJAY NAGAR
Enter value for balance: 5000
old 1: insert into account values(&accno,'&bname',&balance)
new 1: insert into account values(1234603,'SBI VIJAY NAGAR',5000)
1 row created.

SQL> /
Enter value for accno: 1234604
Enter value for bname: SBI JAYANAGAR
Enter value for balance: 5000
old 1: insert into account values(&accno,'&bname',&balance)
new 1: insert into account values(1234604,'SBI JAYANAGAR',5000)
1 row created.

SQL> /
Enter value for accno: 1234605
Enter value for bname: SBI RAJAJI NAGAR
Enter value for balance: 10000
old 1: insert into account values(&accno,'&bname',&balance)
new 1: insert into account values(1234605,'SBI RAJAJI NAGAR',10000)
1 row created.

SQL> /
Enter value for accno: 1234503
Enter value for bname: SBI VIJAY NAGAR
Enter value for balance: 40000
old 1: insert into account values(&accno,'&bname',&balance)
new 1: insert into account values(1234503,'SBI VIJAY NAGAR',40000)
1 row created.

SQL> /
Enter value for accno: 1234504
Enter value for bname: SBI PD NAGAR
Enter value for balance: 4000
old 1: insert into account values(&accno,'&bname',&balance)
new 1: insert into account values(1234504,'SBI PD NAGAR',4000)
1 row created.

SQL> select * from account;


ACCNO BRANCH_NAME BALANCE
---------- -------------------- ----------
1234602 SBI HOSAKEREHALLI 5000
1234603 SBI VIJAY NAGAR 5000
1234604 SBI JAYANAGAR 5000
1234605 SBI RAJAJI NAGAR 10000
1234503 SBI VIJAY NAGAR 40000
1234504 SBI PD NAGAR 4000

SQL> insert into customer values('&cname','&cstreet','&ccity');


Enter value for cname: KEZAR
Enter value for cstreet: M G ROAD
Enter value for ccity: BANGALORE
old 1: insert into customer values('&cname','&cstreet','&ccity')
new 1: insert into customer values('KEZAR','M G ROAD','BANGALORE')
1 row created.

SQL> /
Enter value for cname: LAL KRISHNA
Enter value for cstreet: ST MKS ROAD
Enter value for ccity: BANGALORE
old 1: insert into customer values('&cname','&cstreet','&ccity')
new 1: insert into customer values('LAL KRISHNA','ST MKS ROAD','BANGALORE')
1 row created.

SQL> /
Enter value for cname: RAHUL
Enter value for cstreet: AUGSTEN ROAD
Enter value for ccity: BANGALORE
old 1: insert into customer values('&cname','&cstreet','&ccity')
new 1: insert into customer values('RAHUL','AUGSTEN ROAD','BANGALORE')
1 row created.
SQL> /
Enter value for cname: LALLU
Enter value for cstreet: V S ROAD
Enter value for ccity: BANGALORE
old 1: insert into customer values('&cname','&cstreet','&ccity')
new 1: insert into customer values('LALLU','V S ROAD','BANGALORE')
1 row created.

SQL> /
Enter value for cname: FAIZAL
Enter value for cstreet: RESEDENCY ROAD
Enter value for ccity: BANGALORE
old 1: insert into customer values('&cname','&cstreet','&ccity')
new 1: insert into customer values('FAIZAL','RESEDENCY ROAD','BANGALORE')
1 row created.

SQL> /
Enter value for cname: RAJEEV
Enter value for cstreet: DICKNSN ROAD
Enter value for ccity: BANGALORE
old 1: insert into customer values('&cname','&cstreet','&ccity')
new 1: insert into customer values('RAJEEV','DICKNSN ROAD','BANGALORE')
1 row created.

SQL> select * from customer;


CUSTOMER_NAME CUSTOMER_STREET CUST_CITY
-------------------- -------------------- --------------------
KEZAR M G ROAD BANGALORE
LAL KRISHNA ST MKS ROAD BANGALORE
RAHUL AUGSTEN ROAD BANGALORE
LALLU V S ROAD BANGALORE
FAIZAL RESEDENCY ROAD BANGALORE
RAJEEV DICKNSN ROAD BANGALORE

SQL> insert into depositor values('&cname',&accno);


Enter value for cname: KEZAR
Enter value for accno: 1234602
old 1: insert into depositor values('&cname',&accno)
new 1: insert into depositor values('KEZAR',1234602)
1 row created.

SQL> /
Enter value for cname: LAL KRISHNA
Enter value for accno: 1234603
old 1: insert into depositor values('&cname',&accno)
new 1: insert into depositor values('LAL KRISHNA',1234603)
1 row created.

SQL> /
Enter value for cname: RAHUL
Enter value for accno: 1234604
old 1: insert into depositor values('&cname',&accno)
new 1: insert into depositor values('RAHUL',1234604)
1 row created.

SQL> /
Enter value for cname: LALLU
Enter value for accno: 1234605
old 1: insert into depositor values('&cname',&accno)
new 1: insert into depositor values('LALLU',1234605)
1 row created.

SQL> /
Enter value for cname: LAL KRISHNA
Enter value for accno: 1234503
old 1: insert into depositor values('&cname',&accno)
new 1: insert into depositor values('LAL KRISHNA’,1234503)
1 row created.

SQL> /
Enter value for cname: RAJEEV
Enter value for accno: 1234504
old 1: insert into depositor values('&cname',&accno)
new 1: insert into depositor values('RAJEEV',1234504)
1 row created.

SQL> select * from depositor;


CUSTOMER_NAME ACCNO
-------------------- ----------
KEZAR 1234602
LAL KRISHNA 1234603
RAHUL 1234604
LALLU 1234605
LAL KRISHNA 1234503
RAJEEV 1234504

SQL> insert into loan values(&loanno,'&bname',&amount);


Enter value for loanno: 10011
Enter value for bname: SBI JAYANAGAR
Enter value for amount: 10000
old 1: insert into loan values(&loanno,'&bname',&amount)
new 1: insert into loan values(10011,'SBI JAYANAGAR',10000)
1 row created.

SQL> /
Enter value for loanno: 10012
Enter value for bname: SBI VIJAY NAGAR
Enter value for amount: 5000
old 1: insert into loan values(&loanno,'&bname',&amount)
new 1: insert into loan values(10012,'SBI VIJAY NAGAR',5000)
1 row created.

SQL> /
Enter value for loanno: 10013
Enter value for bname: SBI HOSAKEREHALLI
Enter value for amount: 20000
old 1: insert into loan values(&loanno,'&bname',&amount)
new 1: insert into loan values(10013,'SBI HOSAKEREHALLI',20000)
1 row created.

SQL> /
Enter value for loanno: 10014
Enter value for bname: SBI PD NAGAR
Enter value for amount: 15000
old 1: insert into loan values(&loanno,'&bname',&amount)
new 1: insert into loan values(10014,'SBI PD NAGAR',15000)
1 row created.

SQL> /
Enter value for loanno: 10015
Enter value for bname: SBI RAJAJI NAGAR
Enter value for amount: 25000
old 1: insert into loan values(&loanno,'&bname',&amount)
new 1: insert into loan values(10015,'SBI RAJAJI NAGAR',25000)
1 row created.

SQL> select * from loan;


LOAN_NO BRANCH_NAME AMOUNT
---------- -------------------- ----------
10011 SBI JAYANAGAR 10000
10012 SBI VIJAY NAGAR 5000
10013 SBI HOSAKEREHALLI 20000
10014 SBI PD NAGAR 15000
10015 SBI RAJAJI NAGAR 25000

SQL> insert into borrower values('&cname',&loanno);


Enter value for cname: KEZAR
Enter value for loanno: 10011
old 1: insert into borrower values('&cname',&loanno)
new 1: insert into borrower values('KEZAR',10011)
1 row created.

SQL> /
Enter value for cname: LAL KRISHNA
Enter value for loanno: 10012
old 1: insert into borrower values('&cname',&loanno)
new 1: insert into borrower values('LAL KRISHNA',10012)
1 row created.

SQL> /
Enter value for cname: RAHUL
Enter value for loanno: 10013
old 1: insert into borrower values('&cname',&loanno)
new 1: insert into borrower values('RAHUL',10013)
1 row created.

SQL> /
Enter value for cname: LALLU
Enter value for loanno: 10014
old 1: insert into borrower values('&cname',&loanno)
new 1: insert into borrower values('LALLU',10014)
1 row created.

SQL> /
Enter value for cname: FAIZAL
Enter value for loanno: 10015
old 1: insert into borrower values('&cname',&loanno)
new 1: insert into borrower values('FAIZAL',10015)
1 row created.

SQL> select * from borrower;


CUSTOMER_NAME LOAN_NO
-------------------- ----------
KEZAR 10011
LAL KRISHNA 10012
RAHUL 10013
LALLU 10014
LAL KRISHNA 10015

iii) Find all the customers who have at least two accounts at the Main branch.

SQL> select customer_name from depositor where accno in(select accno from depositor
where accno in(select accno from account where branch_name in(select branch_name from
account where branch_name='SBI VIJAY NAGAR' group by branch_name having count(*) >
1)))group by customer_name having count(*) > 1;

CUSTOMER_NAME
--------------------
LAL KRISHNA

iv) Find all the customers who have an account at all the branches located in a
specific city.

SQL> select customer_name,accno from depositor where accno in(select accno from account
where branch_name in(select branch_name from branch where branch_city='BANGALORE'));

CUSTOMER_NAME ACCNO
-------------------- ----------
KEZAR 1234602
LAL KRISHNA 1234603
RAHUL 1234604
LALLU 1234605
LAL KRISHNA 1234503
RAJEEV 1234504

v) Demonstrate how you delete all account tuples at every branch located in a
specific city.

SQL> delete from account where branch_name=(select branch_name from branch where
branch_city=’&city’);

Enter value for city: BANGALORE


old 2: where branch_city=’&city’
new 6: where brach_city=’BANGALORE’

1 row deleted.

You might also like