You are on page 1of 6

STUDENT-LIBRARY DATABASE

Aim : To create tables and perform queries in a Student Library


scenario

Database Schema for a Student Library scenario


student(stud_no : integer, stud_name: string)
membership(mem_no: integer, stud_no: integer)
book(book_no: integer, book_name:string, author: string)
iss_rec(iss_no:integer, iss_date: date, mem_no: integer, book_no:
integer)

a) Create the tables with the appropriate integrity constraints

> CREATE TABLE STUDENT (STUD_NO INTEGER(5) PRIMARY KEY,STUD_NAME


VARCHAR(15));

> CREATE TABLE MEMBERSHIP( MEM_NO INTEGER(5) PRIMARY KEY,STUD_NO


INTEGER(5),FOREIGN KEY(STUD_NO) REFERENCES STUDENT(STUD_NO));

> CREATE TABLE BOOK ( BOOK_NO INTEGER(5) PRIMARY KEY,BOOK_NAME


VARCHAR(20), AUTHOR VARCHAR(2) );

> CREATE TABLE ISS_REC (ISS_NO INTEGER PRIMARY KEY, ISS_DATE DATE,MEM_NO
INTEGER(5),BOOK_NO INTEGER(5),FOREIGN KEY(MEM_NO) REFERENCES
MEMBERSHIP(MEM_NO), FOREIGN KEY(BOOK_NO) REFERENCES BOOK(BOOK_NO) );

> desc student;

+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| STUD_NO | int | NO | PRI | NULL | |
| STUD_NAME | varchar(15) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+

> desc book;

+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| BOOK_NO | int | NO | PRI | NULL | |
| BOOK_NAME | varchar(20) | YES | | NULL | |
| AUTHOR | varchar(2) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
> desc ISS_REC;

+----------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------+------+-----+---------+-------+
| ISS_NO | int | NO | PRI | NULL | |
| ISS_DATE | date | YES | | NULL | |
| MEM_NO | int | YES | MUL | NULL | |
| BOOK_NO | int | YES | MUL | NULL | |
+----------+------+------+-----+---------+-------+

> desc MEMBERSHIP;

+---------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+------+------+-----+---------+-------+
| MEM_NO | int | NO | PRI | NULL | |
| STUD_NO | int | YES | MUL | NULL | |
+---------+------+------+-----+---------+-------+

b) Insert around 5 records in each of the tables

> INSERT INTO STUDENT VALUES(1,'VISHAL');

> INSERT INTO STUDENT VALUES(2,'ABHIN');

> INSERT INTO STUDENT VALUES(3,'ABHI');

> INSERT INTO STUDENT VALUES(4,'VISHNU');

> INSERT INTO STUDENT VALUES(5,'VIJAY');

> INSERT INTO MEMBERSHIP VALUES(1141,1);

> INSERT INTO MEMBERSHIP VALUES(1142,2);

> INSERT INTO MEMBERSHIP VALUES(1143,3);

> INSERT INTO MEMBERSHIP VALUES(1144,4);

> INSERT INTO MEMBERSHIP VALUES(1145,5);


> INSERT INTO BOOK VALUES(2041,'HAMLET','SHAKESPEARE');

> INSERT INTO BOOK VALUES(2042,'HARRY POTTER','J K ROWLING');

> INSERT INTO BOOK VALUES(2043,'OOP USING C++','BALAGURUSWAMY');

> INSERT INTO BOOK VALUES(2044,'THE JUNGLE BOOK','RUDYARD KIPLING');

> INSERT INTO BOOK VALUES(2045,'DATA STRUCTURES C++','BALUJA');

> INSERT INTO ISS_REC VALUES(121,'2022-12-15',1141,2041);

> INSERT INTO ISS_REC VALUES(122,'2022-12-16',1142,2042);

> INSERT INTO ISS_REC VALUES(123,'2022-12-16',1143,2043);

> INSERT INTO ISS_REC VALUES(124,'2022-12-15',1144,2044);

> INSERT INTO ISS_REC VALUES(125,'2022-12-16',1145,2045);

> SELECT * FROM ISS_REC;

+--------+------------+--------+---------+
| ISS_NO | ISS_DATE | MEM_NO | BOOK_NO |
+--------+------------+--------+---------+
| 121 | 2022-12-15 | 1141 | 2041 |
| 122 | 2022-12-16 | 1142 | 2042 |
| 123 | 2022-12-16 | 1143 | 2043 |
| 124 | 2022-12-15 | 1144 | 2044 |
| 125 | 2022-12-16 | 1145 | 2045 |
+--------+------------+--------+---------+

> SELECT * FROM BOOK;

+---------+---------------------+-----------------+
| BOOK_NO | BOOK_NAME | AUTHOR |
+---------+---------------------+-----------------+
| 2041 | HAMLET | SHAKESPEARE |
| 2042 | HARRY POTTER | J K ROWLING |
| 2043 | OOP USING C++ | BALAGURUSWAMY |
| 2044 | THE JUNGLE BOOK | RUDYARD KIPLING |
| 2045 | DATA STRUCTURES C++ | BALUJA |
+---------+---------------------+-----------------+

> SELECT * FROM MEMBERSHIP;

+--------+---------+
| MEM_NO | STUD_NO |
+--------+---------+
| 1141 | 1 |
| 1142 | 2 |
| 1143 | 3 |
| 1144 | 4 |
| 1145 | 5 |
+--------+---------+

> SELECT * FROM STUDENT;

+---------+-----------+
| STUD_NO | STUD_NAME |
+---------+-----------+
| 1 | VISHAL |
| 2 | ABHIN |
| 3 | ABHI |
| 4 | VISHNU |
| 5 | VIJAY |
+---------+-----------+

c) List all the student names with their membership numbers

> SELECT S.STUD_NAME, M.MEM_NO FROM STUDENT S, MEMBERSHIP M WHERE


M.STUD_NO=S.STUD_NO;

+-----------+--------+
| STUD_NAME | MEM_NO |
+-----------+--------+
| VISHAL | 1141 |
| ABHIN | 1142 |
| ABHI | 1143 |
| VISHNU | 1144 |
| VIJAY | 1145 |
+-----------+--------+

d) List all the issues for the current date with student and Book
names

> SELECT S.STUD_NAME,B.BOOK_NAME,I.ISS_NO FROM ISS_REC I,BOOK


B,MEMBERSHIP M,STUDENT S
WHERE((M.STUD_NO=S.STUD_NO)AND(I.MEM_NO=M.MEM_NO)AND(B.BOOK_NO=I.BOOK_NO
)AND( ISS_DATE=CURDATE()));
+-----------+---------------------+--------+
| STUD_NAME | BOOK_NAME | ISS_NO |
+-----------+---------------------+--------+
| ABHIN | HARRY POTTER | 122 |
| ABHI | OOP USING C++ | 123 |
| VIJAY | DATA STRUCTURES C++ | 125 |
+-----------+---------------------+--------+

e) List the details of students who borrowed book whose author is


‘Balaguruswamy’

> SELECT * FROM STUDENT WHERE STUD_NO IN(SELECT STUD_NO FROM MEMBERSHIP
WHERE MEM_NO IN(SELECT MEM_NO FROM ISS_REC WHERE BOOK_NO IN(SELECT
BOOK_NO FROM BOOK WHERE AUTHOR='BALAGURUSWAMY') ) );

+---------+-----------+
| STUD_NO | STUD_NAME |
+---------+-----------+
| 3 | ABHI |
+---------+-----------+

f) Give a list of books taken by student with stud_no as 5

> SELECT BOOK_NAME FROM BOOK WHERE BOOK_NO IN (SELECT BOOK_NO FROM
ISS_REC WHERE MEM_NO IN(SELECT MEM_NO FROM MEMBERSHIP WHERE STUD_NO
IN(SELECT STUD_NO FROM STUDENT WHERE STUD_NO=5) ) );

+---------------------+
| BOOK_NAME |
+---------------------+
| DATA STRUCTURES C++ |
+---------------------+

You might also like