Assignment 1 Part - 1
Assignment 1 Part - 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,
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
(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
(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
(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;