0% found this document useful (0 votes)
41 views7 pages

Shamika BK 4YG17CS016

The document describes the schema for a library database including tables for books, publishers, authors, branches, book copies, cards, and book lending. It includes the SQL commands to create the tables and insert sample data. Queries are provided to retrieve data from the tables including books, publishers, authors, branches, and book copies.

Uploaded by

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

Shamika BK 4YG17CS016

The document describes the schema for a library database including tables for books, publishers, authors, branches, book copies, cards, and book lending. It includes the SQL commands to create the tables and insert sample data. Queries are provided to retrieve data from the tables including books, publishers, authors, branches, and book copies.

Uploaded by

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

Shamika bk

4YG17CS016

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, ETC.
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.
MYSQL>CREATE TABLE PUBLISHER(NAME VARCHAR(20),PHONE
INT(10),ADDRESS VARCHAR(20),PRIMARY KEY(NAME));
QUERY OK, 0 ROWS AFFECTED (0.08 SEC)
MYSQL> PUBLISHER;
+---------+-------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+---------+-------------+------+-----+---------+-------+
| SNAME | VARCHAR(20) | YES | | NULL | |
| PHONE | INT(10) | YES | | NULL | |
| ADDRESS | VARCHAR(20) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 ROWS IN SET (0.00 SEC)

MYSQL>CREATE TABLE BOOK(BOOK_ID INT, TITLE VARCHAR(20),NAME


VARCHAR(20),PUB_YEAR VARCHAR(20),PRIMARY KEY(BOOK_ID),FOREIGN KEY
(NAME)REFERENCES PUBLISHER(NAME)ON DELETE CASCADE);
QUERY OK, 0 ROWS AFFECTED (0.08 SEC)
MYSQL> DESC BOOK;
+---------+-------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+---------+-------------+------+-----+---------+-------+
| BOOK_ID | INT(11) | NO | PRI | NULL | |
| PUBLISHER_NAME | VARCHAR (0) | YES | | NULL | |
| TITLE| VARCHAR(20) | YES | | NULL | |
| PUB_YEAR| VARCHAR(2) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 ROWS IN SET (0.00 SEC)

MYSQL> CREATE TABLE BOOK_AUTHOR(AUTHOR_NAME


Shamika bk
4YG17CS016

VARCHAR(20),BOOK_ID INT,PRIMARY KEY(BOOK_ID,AUTHOR_NAME),FOREIGN


KEY (BOOK_ID) REFERENCES BOOK(BOOK_ID));
QUERY OK, 0 ROWS AFFECTED (0.08 SEC)
MYSQL>DESC BOOK_AUTHOR;
+---------+-------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+---------+-------------+------+-----+---------+-------+
| AUTHOR_NAME | VARCHAR(20)| NO | PRI | NULL | |
| BOOK_ID| INT(11) | YES | | NULL | |
| PUB_YEAR| VARCHAR(25) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 ROWS IN SET (0.00 SEC)

MYSQL> CREATE TABLE LIBRARY_BRANCH(BRANCH_ID INT,BRANCH_NAME


VARCHAR(20),ADDRESS VARCHAR(20),PRIMARY KEY(BRANCH_ID));
QUERY OK, 0 ROWS AFFECTED (0.07 SEC)
MYSQL> DESC LIBRARY;
+---------+-------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+---------+-------------+------+-----+---------+-------+
| BRANCH_ID | INT(11) | NO | PRI | NULL | |
| BRANCH_NAME | VARCHAR ( | YES | | NULL | |
| ADDRESS| VARCHAR(20) | )YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 ROWS IN SET (0.00 SEC)

MYSQL> CREATE TABLE BOOK_COPIES(NO_OF_COPIES INT, BOOK_ID


INT,BRANCH_ID INT,PRIMARY KEY(BOOK_ID,BRANCH_ID),FOREIGN
KEY(BOOK_ID)REFERENCES BOOK(BOOK_ID),FOREIGN
KEY(BRANCH_ID)REFERENCES LIBRARY_BRANCH(BRANCH_ID));
QUERY OK, 0 ROWS AFFECTED (0.12 SEC)
MYSQL> DESC BOOK_COPIES;
+---------+-------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+---------+-------------+------+-----+---------+-------+
| NO_OF_COPIES | INT(11) | NO | PRI | NULL | |
| BOOK_ID | INT (11) | YES | | NULL | |
| BRANCH_ID| INT(11)|( YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 ROWS IN SET (0.00 SEC)

MYSQL> CREATE TABLE CARD(CARD_NO INT, PRIMARY KEY(CARD_NO));


QUERY OK, 0 ROWS AFFECTED (0.08 SEC)
MYSQL> DESC CARD;
+---------+-------------+------+-----+---------+-------+
| FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA |
+---------+-------------+------+-----+---------+-------+
| CARD_NO| INT() | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 ROWS IN SET (0.00 SEC)
Shamika bk
4YG17CS016

MYSQL> INSERT INTO PUBLISHER


VALUES('MCGRAW_HILL',9900913054,'BANGLORE');
MYSQL> INSERT INTO PUBLISHER VALUES('PEARSON',7892633599,'NEW DELHI');
MYSQL> INSERT INTO
PUBLISHEVALUES('GRUPOPLANETA',9164581818,'BANGLORE');
MYSQL> INSERT INTO
PUBLISHEVALUES('RANDOMHOUSE',8884784228,'HYDRABAD');
MYSQL> INSERT INTO PUBLISHER
VALUES('HACHETTELIVRE',9742526495,'CHENNAI');
MYSQL> INSERT INTO PUBLISHER VALUES('RANDOM',888478422,'MUMBAI');

MYSQL> INSERT INTO BOOK VALUES(1,'DBMS','MCGRAW_HILL','JAN-2017');


MYSQL> INSERT INTO BOOK VALUES(2,'ADBMS','MCGRAW_HILL','JUN-2016');
MYSQL> INSERT INTO BOOK VALUES(3,'CN','PEARSON','SEP-2016');
MYSQL> INSERT INTO BOOK VALUES(4,'CG','GRUPO PLANETA','SEP-2015');
MYSQL> INSERT INTO BOOK VALUES(5,'OS','PEARSON','MAY-2016');

MYSQL> INSERT INTO BOOK_AUTHOR VALUES('NAVATHE',1);


MYSQL> INSERT INTO BOOK_AUTHOR VALUES('NAVATHE',2);
MYSQL> INSERT INTO BOOK_AUTHOR VALUES('TANENBAUM',3);
MYSQL> INSERT INTO BOOK_AUTHOR VALUES('EDWARD ANGEL',4);
MYSQL> INSERT INTO BOOK_AUTHOR VALUES('GALVIN',5);

MYSQL> INSERT INTO LIBRARY_BRANCH VALUES(10,'RR NAGAR','BANGLORE');


MYSQL> INSERT INTO LIBRARY_BRANCH VALUES(11,'RNSIT','BANGLORE');
MYSQL> INSERT INTO LIBRARY_BRANCH VALUES(12,'RAJAJI
NAGAR','BANGLORE');
MYSQL> INSERT INTO LIBRARY_BRANCH VALUES(13,'NITTE','MANGLORE');
MYSQL> INSERT INTO LIBRARY_BRANCH VALUES(14,'MANIPAL','UDUPI');

MYSQL> INSERT INTO BOOK_COPIES VALUES(10,1,10);


MYSQL> INSERT INTO BOOK_COPIES VALUES(5,1,11);
MYSQL> INSERT INTO BOOK_COPIES VALUES(2,2,12);
MYSQL> INSERT INTO BOOK_COPIES VALUES(5,2,13);
MYSQL> INSERT INTO BOOK_COPIES VALUES(7,3,14);
MYSQL> INSERT INTO BOOK_COPIES VALUES(1,5,10);
MYSQL> INSERT INTO BOOK_COPIES VALUES(3,4,11);

MYSQL> INSERT INTO CARD VALUES(100);


MYSQL> INSERT INTO CARD VALUES(101);
MYSQL> INSERT INTO CARD VALUES(102);
MYSQL> INSERT INTO CARD VALUES(103);
MYSQL> INSERT INTO CARD VALUES(104);

MYSQL> SELECT * FROM PUBLISHER;


+----------------+------------+-----------+
| NAME | PHONE | ADDRESS |
Shamika bk
4YG17CS016

+----------------+------------+-----------+
| GRUPO PLANETA | 2147483647 | BANGLORE |
| HACHETTE LIVRE | 2147483647 | CHENNAI |
| MCGRAW_HILL | 2147483647 | BANGLORE |
| PEARSON | 2147483647 | NEW DELHI |
| RANDOM HOUSE | 2147483647 | HYDRABAD |
+----------------+------------+-----------+
5 ROWS IN SET (0.00 SEC)

MYSQL> SELECT * FROM BOOK;


+---------+-------+---------------+----------+
| BOOK_ID | TITLE | NAME | PUB_YEAR |
+---------+-------+---------------+----------+
| 1 | DBMS | MCGRAW_HILL | JAN-2017 |
| 2 | ADBMS | MCGRAW_HILL | JUN-2016 |
| 3 | CN | PEARSON | SEP-2016 |
| 4 | CG | GRUPO PLANETA | SEP-2015 |
| 5 | OS | PEARSON | MAY-2016 |
+---------+-------+---------------+----------+
5 ROWS IN SET (0.00 SEC)

MYSQL> SELECT * FROM BOOK_AUTHOR;


+--------------+---------+
| AUTHOR_NAME | BOOK_ID |
+--------------+---------+
| NAVATHE | 1|
| NAVATHE | 2|
| TANENBAUM | 3|
| EDWARD ANGEL | 4|
| GALVIN | 5|
+--------------+---------+
5 ROWS IN SET (0.00 SEC)

MYSQL> SELECT * FROM LIBRARY_BRANCH ;


+-----------+--------------+----------+
| BRANCH_ID | BRANCH_NAME | ADDRESS |
+-----------+--------------+----------+
| 10 | RR NAGAR | BANGLORE |
| 11 | RNSIT | BANGLORE |
| 12 | RAJAJI NAGAR | BANGLORE |
| 13 | NITTE | MANGLORE |
| 14 | MANIPAL | UDUPI |
+-----------+--------------+----------+
5 ROWS IN SET (0.00 SEC)

MYSQL> SELECT * FROM BOOK_COPIES ;


+--------------+---------+-----------+
| NO_OF_COPIES | BOOK_ID | BRANCH_ID |
+--------------+---------+-----------+
Shamika bk
4YG17CS016

| 10 | 1| 10 |
| 5| 1| 11 |
| 2| 2| 12 |
| 5| 2| 13 |
| 7| 3| 14 |
| 3| 4| 11 |
| 1| 5| 10 |
+--------------+---------+-----------+
7 ROWS IN SET (0.00 SEC)

MYSQL> SELECT * FROM CARD;


+---------+
| CARD_NO |
+---------+
| 100 |
| 101 |
| 102 |
| 103 |
| 104 |
+---------+
5 ROWS IN SET (0.00 SEC)

MYSQL> CREATE TABLE BOOK_LENDING(DATE_OUT DATE,DUE_DATE


DATE,BOOK_ID INT,BRANCH_ID INT,CARD_NO INT,FOREIGN
KEY(BOOK_ID)REFERENCES BOOK(BOOK_ID),FOREIGN
KEY(BRANCH_ID)REFERENCES LIBRARY_BRANCH(BRANCH_ID),FOREIGN
KEY(CARD_NO)REFERENCES CARD(CARD_NO));
QUERY OK, 0 ROWS AFFECTED (0.17 SEC)

MYSQL> INSERT INTO BOOK_LENDING VALUES('2017-01-01','2017-06-


01',1,10,101);QUERY OK, 1 ROW AFFECTED (0.04 SEC)

MYSQL> INSERT INTO BOOK_LENDING VALUES('2017-01-11','2017-03-


11',3,14,101);QUERY OK, 1 ROW AFFECTED (0.05 SEC)

MYSQL> INSERT INTO BOOK_LENDING VALUES('2017-03-15','2017-07-15',4,11,101);


QUERY OK, 1 ROW AFFECTED (0.04 SEC)

MYSQL> INSERT INTO BOOK_LENDING VALUES('2017-04-12','2017-05-12',1,11,104);


QUERY OK, 1 ROW AFFECTED (0.04 SEC)

MYSQL> INSERT INTO BOOK_LENDING VALUES('2017-02-21','2017-04-21',2,13,101);


QUERY OK, 1 ROW AFFECTED (0.03 SEC)

MYSQL> SELECT * FROM BOOK_LENDING;


+------------+------------+---------+-----------+---------+
| DATE_OUT | DUE_DATE | BOOK_ID | BRANCH_ID | CARD_NO |
+------------+------------+---------+-----------+---------+
| 2017-01-01 | 2017-06-01 | 1| 10 | 101 |
Shamika bk
4YG17CS016

| 2017-01-11 | 2017-03-11 | 3| 14 | 101 |


| 2017-03-15 | 2017-07-15 | 4| 11 | 101 |
| 2017-04-12 | 2017-05-12 | 1| 11 | 104 |
| 2017-02-21 | 2017-04-21 | 2| 13 | 101 |
+------------+------------+---------+-----------+---------+
5 ROWS IN SET (0.00 SEC)

1. RETRIEVE DETAILS OF ALL BOOKS IN THE LIBRARY – ID, TITLE, NAME OF


PUBLISHER, AUTHORS, NUMBER OF COPIES IN EACH BRANCH, ETC.
MYSQL> SELECT
B.BOOK_ID,B.TITLE,B.NAME,A.AUTHOR_NAME,C.NO_OF_COPIES,L.BRANCH_ID
FROM BOOK B,BOOK_AUTHOR A,BOOK_COPIES C,LIBRARY_BRANCH L
AND B.BOOK_ID=C.BOOK_ID AND L.BRANCH_ID=C.BRANCH_ID;
+---------+-------+---------------+--------------+--------------+-----------+
| BOOK_ID | TITLE | NAME | AUTHOR_NAME | NO_OF_COPIES | BRANCH_ID |
+---------+-------+---------------+--------------+--------------+-----------+
| 1 | DBMS | MCGRAW_HILL | NAVATHE | 10 | 10 |
| 1 | DBMS | MCGRAW_HILL | NAVATHE | 5| 11 |
| 2 | ADBMS | MCGRAW_HILL | NAVATHE | 2| 12 |
| 2 | ADBMS | MCGRAW_HILL | NAVATHE | 5| 13 |
| 3 | CN | PEARSON | TANENBAUM | 7| 14 |
| 4 | CG | GRUPO PLANETA | EDWARD ANGEL | 3| 11 |
| 5 | OS | PEARSON | GALVIN | 1| 10 |
+---------+-------+---------------+--------------+--------------+-----------+
7 ROWS IN SET (0.00 SEC)

2. GET THE PARTICULARS OF BORROWERS WHO HAVE BORROWED MORE THAN


THREE BOOKS, BUT FROM JAN 2017 TO JUN 2017.

MYSQL> SELECT CARD_NO FROM BOOK_LENDING WHERE DATE_OUT


BETWEEN '2017-01-01'AND 2017-06-01' GROUP BY CARD_NO HAVING COUNT(*)>3;
+---------+
| CARD_NO |
+---------+
| 101 |
+---------+
1 ROW IN SET (0.00 SEC)

4. PARTITION THE BOOK TABLE BASED ON YEAR OF PUBLICATION.


DEMONSTRATE ITS WORKING WITH A SIMPLE QUERY.
MYSQL> CREATE VIEW V_PUBLICATION AS SELECT PUB_YEAR FROM BOOK;
QUERY OK, 0 ROWS AFFECTED (0.03 SEC)

MYSQL> SELECT * FROM V_PUBLICATION;


+----------+
| PUB_YEAR |
+----------+
| JAN-2017 |
| JUN-2016 |
| SEP-2016 |
Shamika bk
4YG17CS016

| SEP-2015 |
| MAY-2016 |
+----------+
5 ROWS IN SET (0.00 SEC)

5. CREATE A VIEW OF ALL BOOKS AND ITS NUMBER OF COPIES THAT ARE
CURRENTLY AVAILABLE IN THE LIBRARY.

MYSQL> CREATE VIEW V_BOOK AS SELECT


B.BOOK_ID,B.TITLE,C.NO_OF_COPIES FROM BOOK B,BOOK_COPIES C,
LIBRARY_BRANCH L WHERE B.BOOK_ID=C.BOOK_ID AND
C.BRANCH_ID=L.BRANCH_ID;
QUERY OK, 0 ROWS AFFECTED (0.03 SEC)

MYSQL> SELECT * FROM V_BOOK;


+---------+-------+--------------+
| BOOK_ID | TITLE | NO_OF_COPIES |
+---------+-------+--------------+
| 1 | DBMS | 10 |
| 1 | DBMS | 5|
| 2 | ADBMS | 2|
| 2 | ADBMS | 5|
| 3 | CN | 7|
| 4 | CG | 3|
| 5 | OS | 1|
+---------+-------+--------------+
7 ROWS IN SET (0.00 SEC)

You might also like