0% found this document useful (0 votes)
77 views

Assignment 1 Part - 1

The document contains SQL queries to create tables, insert data, and define views for a library database. It creates tables for books, publishers, branches, borrowers, and relationships between them. It inserts sample data into the tables. It then writes queries to select, update, and delete data from the tables. Views are created to select and aggregate data from the tables in a readable format for different users and purposes.

Uploaded by

PrincePatel
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views

Assignment 1 Part - 1

The document contains SQL queries to create tables, insert data, and define views for a library database. It creates tables for books, publishers, branches, borrowers, and relationships between them. It inserts sample data into the tables. It then writes queries to select, update, and delete data from the tables. Views are created to select and aggregate data from the tables in a readable format for different users and purposes.

Uploaded by

PrincePatel
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Assignment 1

Part -1
(1)
CREATE TABLE BOOK (
Book_id
INT(5)
Not Null,
Title
Varchar(25)
Not Null,
Publisher_name Varchar(25)
Not Null,
PRIMARY KEY (Book_id),
CONSTRAINT BOOK_PUB_FK FOREIGN KEY(Publisher_name) REFERENCES
PUBLISHER(Name)
ON DELETE SET NULL
ON UPDATE CASCADE);
CREATE TABLE BOOK_AUTHORS(
Book_id
INT(5)
Not Null,
Author_name
Varchar(25)
Not Null,
PRIMARY KEY(Book_id),
PRIMARY KEY(Author_name),
CONSTRAINT BA_BOOK_FK FOREIGN KEY(Book_id) REFERENCES BOOK(Book_id)
ON DELETE SET NULL
ON UPDATE CASCADE);
CREATE TABLE PUBLISHER(
Name
Varchar(25)
Address
Varchar(50),
Phone
INT(10),
PRIMARY KEY(Name));

Not Null,

CREATE TABLE BOOK_COPIES(


Book_id
INT(5)
Not Null,
Branch_id
INT(3)
Not Null,
No_of_copies
INT(5)
Not Null,
PRIMARY KEY(Book_id),
PRIMARY KEY(Branch_id),
CONSTRAINT BC_BOOK_FK FOREIGN KEY(Book_id) REFERENCES BOOK(Book_id)
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT BC_BRANCH_FK FOREIGN KEY(Branch_id) REFERENCES
LIBRARY_BRANCH(Branch_id)
ON DELETE SET DEFAULT ON UPDATE CASCADE);
CREATE TABLE BOOK_LOANS(
Book_id
INT(5)
Not Null,
Branch_id
INT(3)
Not Null,
Card_no
INT(2)
Not Null,

Date_out
Date,
Due_date
Date,
PRIMARY KEY(Book_id),
PRIMARY KEY(Branch_id),
PRIMARY KEY(Card_no),
CONSTRAINT BL_BOOK_FK FOREIGN KEY(Book_id) REFERENCES BOOK(Book_id)
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT BL_BRANCH_FK FOREIGN KEY(Branch_id) REFERENCES
LIBRARY_BRANCH(Branch_id)
ON DELETE SET DEFAULT ON UPDATE CASCADE,
CONSTRAINT BL_CARD_FK FOREIGN KEY(Card_no) REFERENCES
BORROWER(Card_no)
ON DELETE SET DEFAULT ON UPDATE CASCADE);
CREATE TABLE LIBRARY_BRANCH(
Branch_id
INT(3)
Not Null,
Branch_name
Varchar(25)
Not Null,
Address
Varchar(50),
PRIMARY KEY(Branch_id));
CREATE TABLE BORROWER(
Card_no
INT(2)
Name
Varchar(25),
Address
Varchar(50),
Phone
INT(10),
PRIMARY KEY(Card_no));

Not Null,

(2)
INSERT INTO BORROWER
VALUES ("22", "JAINISH", "7825 MCCALLUM BLVD, #1802", "4696643629");
INSERT INTO BORROWER
VALUES ("25", "DEVANG", "7825 MCCALLUM BLVD, #107", "4696643634");
INSERT INTO PUBLISHER
VALUES ("UTD", "800 W CAMPBELL ROAD", "972883222");
INSERT INTO PUBLISHER
VALUES ("HOME PUBLISHER", "900 W CAMPBELL ROAD", "9728834587");
INSERT INTO LIBRARY_BRANCH
VALUES ("001", "HARRINGTON, "1301 CUSTER ROAD");
INSERT INTO LIBRARY_BRANCH
VALUES ("003", "PLANO", "1002 ALMA ROAD");
INSERT INTO BOOK

VALUES ("12345", "THE OCEAN", "UTD");


INSERT INTO BOOK
VALUES ("54321", "UTD GUIDE", "HOME PUBLISHER");
INSERT INTO BOOK_AUTHORS
VALUES ("12345", "JAMES CHARLES");
INSERT INTO BOOK_AUTHORS
VALUES ("54321", "JAINISH PATEL");
INSERT INTO BOOK_COPIES
VALUES ("12345", "001", "15");
INSERT INTO BOOK_COPIES
VALUES ("54321", "003", "47");
INSERT INTO BOOK_LOANS
VALUES ("12345", "001", "22", "15-SEPT-2016", "23-SEPT-2016");
INSERT INTO BOOK_LOANS
VALUES ("54321", "003", "25", "15-AUG-2016", "29-OCT-2016");

(3)
SELECT
*
FROM BOOK
WHERE
BOOK_ID IN
(SELECT BOOK_ID
FROM BOOK_LOANS
WHERE BRANCH_ID='001' AND SYSDATE-DATE_OUT <= 14 AND
RETURN_DATE IS NULL);

(4)
UPDATE
BOOK_COPIES
SET
NO_OF_COPIES = NO_OF_COPIES + 5
WHERE
BOOK_ID = '12345' AND BRANCH_ID = '001';

(5)
DELETE FROM BORROWER WHERE CARD_NO='25';
After deleting this entry, the entry in the book_loans will also affect and the entry
from there also will be deleted.

PART-2
(1)
(a)
SELECT
DNAME, COUNT (*)
FROM DEPARTMENT, EMPLOYEE
WHERE DNUMBER=DNO
GROUP BY DNAME
HAVING AVG (SALARY) > 30000

(b)
SELECT
DNAME, COUNT (*)
FROM DEPARTMENT, EMPLOYEE
WHERE DNUMBER = DNO AND SEX = 'M' AND DNO IN
( SELECT
DNO
FROM
EMPLOYEE
GROUP BY DNO
HAVING AVG (SALARY) > 30000 )
GROUP BY DNAME

(c)
SELECT
FROM
WHERE

(d)

SELECT
FROM
WHERE

LNAME
EMPLOYEE
DNO =
( SELECT
DNO
FROM
EMPLOYEE
WHERE
SALARY =
( SELECT
MAX(SALARY)
FROM
EMPLOYEE) )

LNAME
EMPLOYEE
SALARY >= 10000 +
( SELECT
MIN(SALARY)
FROM
EMPLOYEE)

(e)

20

-+
,
-0

%;

,49
7-

:"+

6/40
7

#=
/8

"))

"

")
))

:-0
-
;
8
+
1
,
8)
;:

6/40
%;
7

%A
F8

#=
%:B
/

"

SELECT
FROM
WHERE

fname, minit, lname


employee E1
1 <
(SELECT
COUNT(depname)
FROM
dependent D
WHERE
E1.ssn = D.essn) AND E1.salary in
(SELECT
MIN(salary)
FROM employee E2
WHERE
E2.dno = E1.dno);

(2)
(a)
CREATE VIEW
DEPT_INFO (DEPT_NAME, MGR_LNAME, MGR_FNAME,
MGR_SALARY)
AS SELECT DNAME, LNAME, FNAME, SALARY
FROM
DEPARTMENT, EMPLOYEE
WHERE
MGRSSN = SSN;

(b)
CREATE VIEW
SELECT

FROM
WHERE

DEPT_VIEW(DEPT_NAME, MGR_NAME, NO_EMP, NO_PRO) AS


D.DNAME
(SELECT
COUNT(E2.SSN)
FROM
EMPLOYEE E2
WHERE
E2.DNO = D.DNO),
(SELECT
COUNT(P.PNO)
FROM
PROJECT P
WHERE
P.DNO=D.DNO)
EMPLOYEE E1, DEPARTMENT D
E1.SSN=D.MGRSSN;

(c)
CREATE VIEW
PROJECT_VIEW(PROJ_NAME,CTRL_DEPT,NO_EMP,TOTAL_HOUR_WEEK) AS
SELECT
P.PNAME, D.DNAME,

FROM
WHERE

(SELECT
COUNT(W.SSN)
FROM
WORKS_ON W
WHERE
W.PNO = P.PNO),
(SELECT
SUM(W2.HOURS)
FROM
WORKS_ON W2
WHERE
W2.PNO = P.PNO)
PROJECT P, DEPARTMENT D
P.DNO = D.DNO;

(d)
CREATE VIEW
PROJ_MOREEMP_VIEW(PROJ_NAME, CTRL_DEPT, NO_EMP,
TOTAL_HOUR_WEEK) AS
SELECT
P.PNAME, D.DNAME,
(SELECT
COUNT(W.SSN)
FROM
WORKS_ON W
WHERE
W.PNO = P.PNO),
(SELECT
SUM(W2.HOURS)
FROM
WORKS_ON W2
WHERE
W2.PNO = P.PNO)
FROM
PROJECT P, DEPARTMENT D
WHERE
P.DNO = D.DNO AND P.PNO IN
(SELECT
PNO
FROM
WORKS_ON
GROUP BY PNO HAVING COUNT(SSN) > 1);

(e)
CREATE VIEW
EMP_MGR_VIEW(EMP_NAME, EMP_SAL, DEPT, DEPT_MGR,
MGR_SAL, AVG_SAL) AS
SELECT
E.SALARY, E.DNAME, E2.FNAME, E2.SALARY,
(SELECT
AVG(SALARY)
FROM
EMPLOYEE E4
WHERE
E4.DNO = E.DNO)
FROM
(SELECT
E1.FNAME, E1.MINIT, E1.LNAME, E1.SALARY, D1.DNAME,
D1.MGRSSN, E1.DNO,
FROM
EMPLOYEE E1, DEPARTMENT D1
WHERE E1.DNO=D1.DNO) E, EMPLOYEE E2
WHERE
E.MGRSSN = E2.SSN;

You might also like