We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 9
DBMS Lab Manual-2018
EXPERIMENTS
PART A: SOL PROGRAMMING
1. Consider the following schema for a Library Database:
BOOK (Book_id, Title, Publisher_Name, Pub_Year)
BOOK_AUTHORS (Book_id, Author_Name)
PUBLISHER (Name, Address, Phone)
BOOK COPIES (Book_id, Branch_id, No-of Copies)
BOOK_LENDING (Book_id, Branch_id, Card_No, Date_Out, Due_Date)
LIBRARY_BRANCH (Branch_id, Branch_Name, Address)
Write SQL queries to
1. Retrieve details of all books in the library — id, title, name of publisher, authors,
number of copies in each branch, ete.
2. Get the particulars of borrowers who have borrowed more than 3 books, but from Jan
2017 to Jun 2017
3. Delete a book in BOOK table, Update the contents of other tables to reflect this data
manipulation operation.
4. Partition the BOOK table based on year of publication. Demonstrate its working with a
simple query.
5. Create a view of all books and its number of copies that are currently available in the
Library.
SS ~
hema Di
Book
CSE Dept,MSEC Page 22
ramDBMS Lab Manual-2018
Title | Pub_Year | Publisher Name
f
Book_Aut
thors
Name [ Phone_no | Address
Book_Copies
Branch id | No_of_Copies
WT
Book_Lending
Book id | Branch id | Card_no | Date_out | Due_date
Library_Branch
4
Branch id] ‘Address | Branch_name
LD)
Table Creation
CREATE TABLE PUBLISHER.
(NAME VARCHAR? (20) PRIMARY KEY,
PHONE INTEGER,
ADDRESS VARCHAR2 (20);
CREATE TABLE BOOK.
(BOOK_ID INTEGER PRIMARY KEY,
TITLE VARCHAR? (20),
PUB_YEAR VARCHAR? (20),
PUBLISHER_NAME REFERENCES PUBLISHER (NAME) ON DELETE CASCADE);
CREATE TABLE BOOK_AUTHORS,
(AUTHOR_NAME VARCHAR2 (20),
BOOK_ID REFERENCES BOOK (BOOK_ID) ON DELETE CASCADE,
CSE Dept,MSEC Page 23DBMS Lab Manual-2018
PRIMARY KEY (BOOK_ID, AUTHOR_NAME));
CREATE TABLE LIBRARY_BRANCH
(BRANCH_ID INTEGER PRIMARY KEY,
BRANCH_NAME VARCHAR? (50),
ADDRESS VARCHAR2 (50);
CREATE TABLE BOOK_COPIES
(NO_OF_COPIES INTEGER,
BOOK_ID REFERENCES BOOK (BOOK_ID) ON DELETE CASCADE,
BRANCH_ID REFERENCES LIBRARY_BRANCH (BRANCH_ID) ON DELETE
CASCADE,
PRIMARY KEY (BOOK_ID, BRANC!
LID);
CREATE TABLE CARD
(CARD_NO INTEGER PRIMARY KEY);
CREATE TABLE BOOK_LENDING
(DATE_OUT DATE
DUE_DATE DATE,
BOOK_ID REFERENCES BOOK (BOOK_ID) ON DELETE CASCADE,
BRANCH_ID REFERENCES LIBRARY_BRANCH (BRANCH_ID) ON.
CASCADE,
CARD_NO REFERENCES CARD (CARD_NO) ON DELETE CASCADE,
PRIMARY KEY (BOOK_ID, BRANCH_ID, CARD_NO));
Table Descriptions
DESC PUBLISHER;
SQL> dese publishers
Name null? Type
Nate NOT NULL VARCHAR (20)
PHONE NUMBER (38)
ADDRESS, ‘vaRCHAR2(20)
DESC BOOK;
SQL> DESC 800K;
Mane nuit? Type
00K_1D NOT NULL NUMBER(38)
THTLE varcAan2(20)
PuB_YEAR UaecHAR? (29)
PUBLISHER NAHE varcnan2(20)
CSE Dept,MSEC Page 24DBMS Lab Manual-2018
DESC BOOK_AUTHORS;
SQL> DESC BOOK AUTHORS;
Nane
AUTHOR_NANE NOT NULL aRCHAR?(28)
BooK_10 NOT MULL HUWDER(98)
DESC LIBRARY_BRANCH;
SOL> DESC LIBRARY_BRANCH;
Hane til? Type
‘BRANCH_1D MOT MULL HUNBERC3B)
‘BRANCH MANE VaRcHAn2(s0)
ADDRESS ‘aRcHAR2cs0)
DESC BOOK_COPIES;
SOL> DESC BO0K_coPrES:
Nane MULL? type
NO_OF_caPTEs HUNBER(38)
BooK_ID NOT MULL MUNBER(38)
BRANCH_LD NOT NULL NUNBER(38)
DESC CARD;
SOL> DESC carp;
Nane Null? Type
temo NOT MULL NUNBER(38)
DESC BOOK_LENDIN'
SAL> dese ook_ Lendl
ane
Dave our
DUE. DATE
0% 10.
‘BRANT 1D
Insertion of Values to Tables
INSERT INTO PUBLISHER VALUES (‘MCGRAW-HILL’, 9989076587, ‘BANGALORE’);
INSERT INTO PUBLISHER VALUES (‘PEARSON’, 9889076565, ‘NEWDELH’);
INSERT INTO PUBLISHER VALUES (‘RANDOM HOUSE”, 7455679345, ‘HYDRABAD’);
CSE Dept,MSEC Page 25DBMS Lab Manual-2018
INSERT INTO PUBLISHER VALUES (‘HACHETTE LIVRE’, 8970862340, ‘CHENAI’);
INSERT INTO PUBLISHER VALUES (‘GRUPO PLANETA’, 7756120238, ‘BANGALORE’);
INSERT INTO BOOK VALUES (1,’DBMS’,‘JAN-2017", ‘MCGRAW-HILL’);
INSERT INTO BOOK VALUES (2,'ADBMS’,"JUN-2016", ‘MCGRAW-HILL’);
INSERT INTO BOOK VALUES (3,'CN’,’SEP-2016", ‘PEARSON’);
INSERT INTO BOOK VALUES (4,'CG’,’SEP-2015", ‘GRUPO PLANETA’);
INSERT INTO BOOK VALUES (5,'0S",’MAY-2016", PEARSON)
INSERT INTO BOOK_AUTHORS VALUES (‘NAVATHE’, 1);
INSERT INTO BOOK_AUTHORS VALUES (‘NAVATHE’, 2);
INSERT INTO BOOK_AUTHORS VALUES (‘TANENBAUM',
INSERT INTO BOOK_AUTHORS VALUES (‘EDWARD ANGI
INSERT INTO BOOK_AUTHORS VALUES (’GALVIN’, 5);
INSERT INTO LIBRARY_BRANCH VALUES (10,’RR NAGAR’, BANGALORE’);
INSERT INTO LIBRARY_BRANCH VALUES (11,’RNSIT’,/BANGALORE’);
INSERT INTO LIBRARY_BRANCH VALUES (12,’RAJAJI NAGAR’, BANGALORE’);
INSERT INTO LIBRARY_BRANCH VALUES (13,’NITTE”,, MANGALORE’);
INSERT INTO LIBRARY_BRANCH VALUES (14,’MANIPAL’,"UDUPI’);
INSERT INTO BOOK_COPIES VALUES (10, 1, 10);
INSERT INTO BOOK_COPIES VALUES (5, 1, 11);
INSERT INTO BOOK_COPIES VALUES (2, 2, 12);
INSERT INTO BOOK_COPIES VALUES (5, 2, 13);
INSERT INTO BOOK_COPIES VALUES (7, 3, 14);
INSERT INTO BOOK_COPIES VALUES (1, 5, 10);
INSERT INTO BOOK_COPIES VALUES (3, 4, 11);
INSERT INTO CARD VALUES (100);
INSERT INTO CARD VALUES (101);
INSERT INTO CARD VALUES (102);
INSERT INTO CARD VALUES (103);
INSERT INTO CARD VALUES (104);
INSERT INTO BOOK_LENDING VALUES (’01-JAN-17’,'01-JUN-17’, 1, 10, 101);
INSERT INTO BOOK_LENDING VALUES (’11-JAN-17’,11-MAR-17’, 3, 14, 101);
INSERT INTO BOOK_LENDING VALUES (’21-FEB-17’,'21-APR-17’, 2, 13, 101);
INSERT INTO BOOK_LENDING VALUES (’15-MAR-17°,15-JUL-17°, 4, 11, 101);
INSERT INTO BOOK_LENDING VALUES (*12-APR-17°,'12-MAY-17’, 1, 11, 104);
CSE Dept,MSEC Page 26DBMS Lab Manual-2018
SELECT * FROM PUBLISHER;
SQL> select * from publisher;
NAHE PHONE ADDRESS
NCGRAW-HILL 9989676587 BANGALORE
PEARSON 9889676565 NEVDELHI
RANDOM HOUSE 7455679345 HYDRABAD
HACHETTE LIURE 8970862940 CHENAT
GRUPO PLANETA 7756120228 BANGALORE
SELECT * FROM BOOK;
SQL> SELECT * FROM BOOK;
BoOK_ID TITLE Pup_veaR PUBLISHER_NAWE
4 DBMS JAN-2017 MCGRAY-HILL
2 aDBHs SuN-2016 HeCRAU-HILL
3 GN SEP-2016 PEARSON
4 oe SEP-2015 GRUPO PLANETA
5 as hay-2016 PEARSON
SELECT * FROM BOOK_AUTHORS;
SQL> SELECT * FROM BOOK_@UTHORS
AUTHOR_NAHE BOOK_ID
NAUATHE
NAUATHE
TANENBAUN
EDWARD ANGEL
BALUIN
eens
SELECT * FROM LIBRARY_BRANCH;
SELECT * FROM BOOK_COPIES;
SQL> SELECT » FROM nooK_coPIES;
NO_OF_COPIES — BOOK_ID BRANCH_ID
a8 1 4e
5 4 4
2 2 42
5 2 43
7 2 44
1 5 ae
a x 4
CSE Dept,MSEC Page 27DBMS Lab Manual-2018
SELECT * FROM CARD;
SQL> SELECT * FROM CARD
eARD_NO
109
191
102
109
408
SELECT * FROM BOOK_LENDING;
SQL> select * fron book_lending;
paTE_our
1-JaN-17
14-JAN-17
21-FEB-17
45-HAR-17
12-APR-17
Queries:
DUE_DATE
@1-JUN-17
44-HAR-17
21-APR-17
45-JUL-17
42-"Av—17
BOOK_ID
aenest
BRANCH_ID
eaRD_No
101
101
1
101
404
1. Retrieve details of all books in the library ~ id, title, name of publisher, authors,
number of copies in each branch, ete.
SELECT B.BOOK_ID, B.TITLE, B.PUBLISHER_NAME,
C.NO_OF_COPIES, L.BRANCH_ID
A.AUTHOR_NAME,
FROM BOOK B, BOOK_AUTHORS A, BOOK_COPIES C, LIBRARY_BRANCH L.
WHERE B.BOOK_ID=A.BOOK_ID
AND B.BOOK_ID=C,BOOK_ID
AND L.BRANCH_ID=C.BRANCH_ID;
2
2 aban
HegRaw-atL
eGRAUCATLL
NnvaTHE
aURE
R
"
1. Get the particulars of borrowers who have borrowed more than 3 books, but from
Jan 2017 to Jun 2017.
SELE
"T CARD_NO
FROM BOOK _L
CSE Dept,MSEC
Page 28DBMS Lab Manual-2018
WHERE DATE_OUT BETWEEN ’01-JAN-2017’ AND ’01-JUL-2017°
GROUP BY CARD_NO
HAVING COUNT (*)>3;
CARD_NO
491
2. Delete a book in BOOK table. Update the contents of other tables to reflect this data
FROM BOOK
WHERE BOOK_ID=3;
SQL> DELETE FROM BOOK
2 WHERE BODK_1D=3;
1 rou deleted.
SQL> SELECT * FROM BOOK;
BOOK_ID TITLE PUB_YEAR PUBLISHER_NANE
4 DBHs JAaH-2017 MEGRAW-HILL
2 apans SUN-2016 HCERAW-HILL
4 ce SEP-2015 GRUPO. PLANETA
5 0s May-2016 PEARSON
3. Partition the BOOK table based on year of publication, Demonstrate its working with a
simple query.
FROM BOOK;
PUB_YEAR
JaNn-2017
JUN-2016
SEP-2016
SEP-2015
hay-2016
Create a view of all books and its number of copies that are currently available in the
Library.
CREATE VIEW V_BOOKS AS
SELECT B.BOOK_ID, B.TITLE, C.NO_OF_COPIES
FROM BOOK B, BOOK_COPIES C, LIBRARY_BRANCH L
CSE Dept,MSEC Page 29DBMS Lab Manual-2018
WHERE B.BOOK_ID=C.BOOK_ID
AND C.BRANCH_ID=L.BRANCH_ID;
BOOK_ID TITLE NO_OF_COPIES
DBS 1
Dens
ADBHS
apBKs
cH
os
ee.
euennaa!
2. Consider the following schema for Order Database:
SALESMAN (Salesman_id, Name, City, Commission)
CUSTOMER (Customer_id, Cust_Name, City, Grade, Salesman_id)
ORDERS (Ord_No, Purchase_Amt, Ord_Date, Customer_id, Salesman_id)
Write SQL queries to
1. Count the customers with grades above Bangalore’s average.
2. Find the name and numbers of all salesmen who had more than one customer.
3. List all salesmen and indicate those who have and don’t have customers in their cities
(Use UNION operation.)
4. Create a view that finds the salesman who has the customer with the highest order of a
day.
CSE Dept,MSEC Page 30