0% found this document useful (0 votes)
31 views3 pages

03 Company DB

Uploaded by

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

03 Company DB

Uploaded by

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

Consider the schema for Company Database:

EMPLOYEE (Eid, Name, Address, Gender, Salary, SuperEid, Dno)


DEPARTMENT (Dnum, Dname, DMgr_id, Mgr_start_date)
DLOCATION (Dno, Dlocation)
PROJECT (Pnum, Pname, Plocation, Dno)
WORKS_ON (Eid, Pno, Hours)
DEPENDENT (Empid, Dep_name, Gender, Bdate, Relationship)

DEPARTMENT (Dnum, Dname, DMgr_id, Mgr_start_date)

CREATE TABLE DEPARTMENT


(
DNUM VARCHAR(4),
DNAME VARCHAR(20),
MGR_SSN VARCHAR(10),
MGR_START_DATE DATE,
PRIMARY KEY(DNUM)
);

EMPLOYEE (Eid, Name, Address, Gender, Salary, SuperEid, Dno)

CREATE TABLE EMPLOYEE


(
EID VARCHAR(10),
NAME VARCHAR(20),
ADDRESS VARCHAR(20),
GEN CHAR(1),
SALARY DECIMAL(10,3),
SUPER_EID VARCHAR(10),
DNO INT,
PRIMARY KEY(EID),
FOREIGN KEY(SUPER_EID) REFERENCES EMPLOYEE(EID) ON DELETE
CASCADE,
FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DNUM) ON DELETE CASCADE
);

DLOCATION (Dno, Dlocation)


CREATE TABLE DLOCATION
(
DNO INT,
DLOC VARCHAR(20),
PRIMARY KEY(DNO,DLOC),
FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DNUM) ON DELETE CASCADE
);
PROJECT (Pnum, Pname, Plocation, Dno)
CREATE TABLE PROJECT
(
PNUM INT,
PNAME VARCHAR(20),
PLOCATION VARCHAR(20),
DNO INT,
PRIMARY KEY(PNUM),
FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DNUM) ON DELETE CASCADE
);

WORKS_ON (Eid, Pno, Hours)


CREATE TABLE WORKS_ON
(
EID VARCHAR(20),
PNO INT,
HOURS INT,
PRIMARY KEY(EID,PNO),
FOREIGN KEY(EID) REFERENCES EMPLOYEE(EID) ON DELETE CASCADE,
FOREIGN KEY(PNO) REFERENCES PROJECT(PNUM) ON DELETE CASCADE
);

SQL>ALTER TABLE DEPARTMENT ADD CONSTRAINT C_MSSN FOREIGN KEY(MGR_SSN)


REFERENCES EMPLOYEE(EID) ON DELETE CASCADE;

SQL>UPDATE DEPARTMENT SET MGR_SSN='&MGR_SSN' WHERE DNAME='&DNAME';

Write SQL queries to


1. Make a list of all project numbers for projects that involve an employee whose name is “Rahul”, either as a
worker or as a manager of the department that controls the project.

(SELECT DISTINCT P.PNO FROM PROJECT P,EMPLOYEE E,DEPARTMENT D


WHERE E.DNO=D.DNUM AND D.DNUM=P.DNO AND D.MGR_SSN=E.SSN AND
NAME='RAHUL') UNION (SELECT DISTINCT P.PNO FROM PROJECT P,EMPLOYEE
E,WORKS_ON W WHERE E.SSN=W.SSN AND P.DNO=W.PNO AND
NAME='RAHUL');

2. Show the resulting salaries if every employee working on the “IoT” project is given a 10 percent raise.

SELECT NAME,1.1* SALARY AS INCREASEDSALARY FROM EMPLOYEE


E,WORKS_ON W,PROJECT P WHERE E.SSN=W.SSN AND W.PNO=P.PNO AND
PNAME='IOT';

3. Find the sum of the salaries of all employees of the “Accounts” department, as well as the maximum salary,
the minimum salary, and the average salary in this department.

SELECT SUM(SALARY),MAX(SALARY),MIN(SALARY),AVG(SALARY) FROM


EMPLOYEE E,DEPARTMENT D WHERE DNAME='ACCOUNTS' AND
E.DNO=D.DNO;
4. Retrieve the name of each employee who works on all the projects controlled by department number 5 (use
NOT EXISTS operator).

SELECT NAME
FROM EMPLOYEE E
WHERE NOT EXISTS ((SELECT PNO FROM
PROJECT WHERE DNO=5)MINUS (SELECT PNO FROM WORKS_ON W
WHERE
E.SSN=W.SSN));

5. Create a view Dept_info that gives details of department name, Number of employees and total salary of
each department.
CREATE VIEW DEPT_INFO AS
SELECT D.DNAME, COUNT(E.DNO) AS EMPLOYEE_COUNT, SUM(SALARY) AS TOTAL_SAL
FROM DEPARTMENT D, EMPLOYEE E
WHERE D.DNUM=E.DNO GROUP BY(E.DNO);

You might also like