0% found this document useful (0 votes)
671 views4 pages

DBMS LAB Samples

The document describes creating tables and inserting data for an order processing database and a banking enterprise database. It then provides examples of SQL queries to: 1) Create the tables with primary and foreign keys and insert sample data 2) Get customer names, number of orders, and average order amount 3) Find orders shipped from warehouses in a specific city 4) Delete an item and handle related order items 5) Perform similar operations for the banking tables like finding customers with multiple accounts at a branch or deleting accounts at branches in a specific city.

Uploaded by

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

DBMS LAB Samples

The document describes creating tables and inserting data for an order processing database and a banking enterprise database. It then provides examples of SQL queries to: 1) Create the tables with primary and foreign keys and insert sample data 2) Get customer names, number of orders, and average order amount 3) Find orders shipped from warehouses in a specific city 4) Delete an item and handle related order items 5) Perform similar operations for the banking tables like finding customers with multiple accounts at a branch or deleting accounts at branches in a specific city.

Uploaded by

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

2. Order processing database.

Consider the following relations for a order processing database application in a company.
CUSTOMER( custno:int , cname:string , city:string )
ORDER( orderno:int , odate:date , custno:int , ord_amt:int )
ORDER_ITEM( orderno:int , itemno:int , quantity:int )
ITEM( itemno:int , unitprice:int )
SHIPMENT( orderno:int , warehouseno:int , ship_date:date )
WAREHOUSE( warehouseno:int , city:string )
1)Create the above tables by properly specifying the primary keys and foreign keys.
2)Enter at least five tuples for each relation.
3)Produce a listing: custname , No_of_orders , Avg_order_amount , where the middle column is
the total number of orders by the customer and the last column is the average order amount for
that customer.
4)List the orderno for orders that were shipped from all the warehouses that the company has in
a specific city.
5)Demonstrate the deletion of an item from the ITEM table and demonstrate a method of
handling the rows in the ORDER_ITEM table that contains this particular item.

a)

SQL> create table customer(custno int,cname varchar(10),city varchar(10),primary key(custno));

SQL> create table order1(orderno int,odate date,custno int,ord_amt int,primary


key(orderno),foreign key(custno) references customer(custno));

SQL> create table item(itemno int,untiprice int,primary key(itemno));

SQL> create table order_item(orderno int,itemno int,quantity int,primary


key(orderno,itemno),foreign key(orderno) references order1(orderno),foreign key(itemno)
references item(itemno) on delete cascade);

SQL> create table warehouse(warehouseno int,city varchar(10),primary key(warehouseno));

SQL> create table shipment(orderno int,warehouseno int,ship_date date,primary


key(orderno,warehouseno),foreign key(orderno) references order1(orderno),foreign
key(warehouseno) references warehouse(warehouseno));

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

SQL> insert into order1 values(&orderno,'&odate',&custno,&ord_amt);

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

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

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

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

c)

SQL> select c.custno,count(*) as No_of_orders,avg(o.ord_amt) as Avg_order_amount from


customer c,order1 o where o.custno=c.custno group by c.custno;

d)

SQL> select distinct s.orderno from shipment s where not exists((select warehouseno from
warehouse where city='Bangalore') minus (select w.warehouseno from shipment w where
w.orderno=s.orderno))and exists ( select warehouseno from warehouse where city='Bangalore');

OR

SQL> select s.orderno from shipment s,warehouse w where s.warehouseno=w.warehouseno and


w.city='Bangalore' group by orderno having count(*)=(select count(*) from warehouse where
city='Bangalore') and not(count(*)=0);

e) SQL> delete from item where itemno=3;

Banking enterprise.
5.
Consider the following database for a banking enterprise.
BRANCH( branch_name:string , branch_city:string , assets:real )
ACCOUNT( accno:int , branch_name:string , balance:real )
DEPOSITOR( customer_name:string , accno:int )
CUSTOMER( 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 )
1)Create the above tables by properly specifying the primary keys and foreign keys.
2)Enter at least five tuples for each relation.
3)Find all the customers who have at least two accounts at the main branch.
4)Find all the customers who have an account at all the branches located in a specific city.
5)Demonstrate how you delete all account tuples at every branch located in a specific city.

a)
SQL> create table branch(branch_name varchar(10),branch_city varchar(10),assets int,primary
key(branch_name));

SQL> create table account(accno int,branch_name varchar(10),balance int,primary key(accno));

SQL> create table customer(customer_name varchar(10),customer_street


varchar(10),customer_city varchar(10),primary key(customer_name));

SQL> create table depositor(customer_name varchar(10),accno int,primary


key(customer_name,accno),foreign key(customer_name) references
customer(customer_name),foreign key(accno) references account(accno) on delete cascade);

SQL> create table loan(loan_number int,branch_name varchar(10),amount int,primary


key(loan_number),foreign key(branch_name) references branch(branch_name));

SQL> create table borrower(customer_name varchar(10),loan_number int,primary


key(customer_name,loan_number),foreign key(customer_name) references
customer(customer_name),foreign key(loan_number) references loan(loan_number));

b)

SQL> insert into branch values('&branch_name','&branch_city',&assets);

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

SQL> insert into customer values('&customer_name','&customer_street','&customer_city');

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

SQL> insert into loan values(&loan_number,'&branch_name',&amount);

SQL> insert into borrower values('&customer_name',&loan_number);


c)

SQL> select d.customer_name from depositor d,account a where a.accno=d.accno and


a.branch_name='KRMarket' group by d.customer_name having count(*)>=2;

d)

SQL> select c.customer_name from customer c where exists(select branch_name from branch
where branch_city='Bangalore') and not exists ((select branch_name from branch where
branch_city='Bangalore') minus (select b.branch_name from branch b,account a,depositor d
where d.customer_name=c.customer_name and d.accno=a.accno and
a.branch_name=b.branch_name));

e)

SQL> delete from account where accno in (select a.accno from account a,branch b where
a.branch_name=b.branch_name and b.branch_city='Bangalore');

You might also like