0% found this document useful (0 votes)
20 views9 pages

Company DB Values

Company database

Uploaded by

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

Company DB Values

Company database

Uploaded by

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

DDL COMMANDS:

CREATE TABLE EMPLOYEE


(
SSN INT,
NAME VARCHAR(15),
ADDRESS VARCHAR(15),
SEX VARCHAR(2),
SALARY FLOAT,
SUPERSSN INT,
DNO INT,
CONSTRAINT EMP_PK PRIMARY KEY(SSN)
);

CREATE TABLE DEPARTMENT


(
DNO INT,
DNAME VARCHAR(15),
MGRSSN INT,
MGRSTARTDATE DATE,
CONSTRAINT DEPT_PK PRIMARY KEY(DNO)
);

CREATE TABLE DLOCATION


(
DNO INT,
DLOC VARCHAR(15),
CONSTRAINT DLOC_PK PRIMARY KEY(DNO,DLOC),
CONSTRAINT DLOC_FK FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DNO)
);

CREATE TABLE PROJECT


(
PNO INT,
PNAME VARCHAR(10),
PLOCATION VARCHAR(15),
DNO INT,
CONSTRAINT PROJ_PK PRIMARY KEY(PNO),
CONSTRAINT PROJ_FK FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DNO)
);

CREATE TABLE WORKS_ON


(SSN INT,
PNO INT,
HOURS FLOAT,
CONSTRAINT WORKS_ON_PK PRIMARY KEY(SSN,PNO),
CONSTRAINT WORKS_ON_FK1 FOREIGN KEY(SSN) REFERENCES EMPLOYEE(SSN),
CONSTRAINT WORKS_ON_FK2 FOREIGN KEY(PNO) REFERENCES PROJECT(PNO)
);

DML STATEMENTS:

Inserting values into Employee Table:

INSERT INTO EMPLOYEE VALUES(12345,'Scott','Housten,TX','M',300000,33344,5);


INSERT INTO EMPLOYEE VALUES(33344,'Franklin','Housten,TX','M',400000,88866,5);
INSERT INTO EMPLOYEE VALUES(99988,'Alicia','Spring,TX','F',250000,98765,4);
INSERT INTO EMPLOYEE VALUES(98765,'Jennifer','Bellaire,TX','F',430000,88866,4);
INSERT INTO EMPLOYEE VALUES(66688,'Ramesh','Humble Oak,TX','M',380000,33344,5);
INSERT INTO EMPLOYEE VALUES(45345,'Joyce','Houston,TX','F',250000,33344,5);
INSERT INTO EMPLOYEE VALUES(98798,'Ahmad','Bellaire,TX','M',250000,98765,4);
INSERT INTO EMPLOYEE VALUES(88866,'Scott','Houston,TX','M',550000, NULL,1);
INSERT INTO EMPLOYEE VALUES(66677,'William','Houston,TX','M',650000, 33344,5);
INSERT INTO EMPLOYEE VALUES(22233,'Daniel','Spring,TX','M',650000, 88866,5);

Inserting values into Department Table:

INSERT INTO DEPARTMENT VALUES(5,'Research',33344,'22-MAY-88');


INSERT INTO DEPARTMENT VALUES(4,'Administration',98765,'01-JAN-95');
INSERT INTO DEPARTMENT VALUES(1,'Headquaters',88866,'19-JUN-81');

DDL STATEMENTS TO ALTER THE TABLE EMPLOYEE AND DEPARTMENT DUE TO CROSS REFERENCES:

ALTER TABLE EMPLOYEE ADD CONSTRAINT EMP_SUPERSSN_FK FOREIGN KEY(SUPERSSN) REFERENCES


EMPLOYEE (SSN);

ALTER TABLE EMPLOYEE ADD CONSTRAINT EMP_DNO_FK FOREIGN KEY(DNO) REFERENCES


DEPARTMENT (DNO);

ALTER TABLE DEPARTMENT ADD CONSTRAINT DEPT_MGR_FK FOREIGN KEY(MGRSSN) REFERENCES


EMPLOYEE (SSN);

DML STATEMENTS:

Inserting values into DLocation Table:

INSERT INTO DLOCATION VALUES(1,'Houston');


INSERT INTO DLOCATION VALUES(4,'Stafford');
INSERT INTO DLOCATION VALUES(5,'Bellaire');
INSERT INTO DLOCATION VALUES(5,'Sugarland');
INSERT INTO DLOCATION VALUES(5,'Houston');

Inserting values into Project Table:

INSERT INTO PROJECT VALUES(1,'ProductX','Bellaire',5);


INSERT INTO PROJECT VALUES(2,'ProductY','Sugarland',5);
INSERT INTO PROJECT VALUES(3,'ProductZ','Houston',5);
INSERT INTO PROJECT VALUES(10,'Computer','Stafford',4);
INSERT INTO PROJECT VALUES(20,'Reorganize','Houston',1);
INSERT INTO PROJECT VALUES(30,'IOT','Stafford',4);

Inserting values into Works_On Table:

INSERT INTO WORKS_ON VALUES(12345,1,32.5)


INSERT INTO WORKS_ON VALUES(12345,2,7.5);
INSERT INTO WORKS_ON VALUES(66688,3,40.0);
INSERT INTO WORKS_ON VALUES(45345,1,20.0);
INSERT INTO WORKS_ON VALUES(45345,2,20.0);
INSERT INTO WORKS_ON VALUES(33344,2,10.0);
INSERT INTO WORKS_ON VALUES(33344,3,10.0);
INSERT INTO WORKS_ON VALUES(33344,10,10.0);
INSERT INTO WORKS_ON VALUES(33344,20,10.0);
INSERT INTO WORKS_ON VALUES(99988,30,30.0);
INSERT INTO WORKS_ON VALUES(99988,10,10.0);
INSERT INTO WORKS_ON VALUES(98798,10,35.0);
INSERT INTO WORKS_ON VALUES(98798,30,5.0);
INSERT INTO WORKS_ON VALUES(98765,30,20.0);
INSERT INTO WORKS_ON VALUES(98765,20,15.0);
INSERT INTO WORKS_ON VALUES(88866,20,NULL);
INSERT INTO WORKS_ON VALUES(12345,3,15.0)

SQL> Select * from Employee;

S SALAR SUPERSS DN
SSN NAME ADDRESS
E Y N O
12345 Scott Housten,TX M 300000 33344 5
33344 Franklin Housten,TX M 400000 88866 5
99988 Alicia Spring,TX F 250000 98765 4
98765 Jennifer Bellaire,TX F 430000 88866 4
66688 Ramesh Humble Oak,TX M 380000 33344 5
45345 Joyce Houston,TX F 250000 33344 5
98798 Ahmad Bellaire,TX M 250000 98765 4
88866 Scott Houston,TX M 550000 1
66677 William Houston,TX M 650000 33344 5
22233 Daniel Spring,TX M 650000 88866 5
SQL> Select * from Department;

DNAME MGRSSN MGRSTARTD


DNO
5 Research 33344 22-MAY-88
4 Administration 98765 01-JAN-95
1 Headquaters 88866 19-JUN-81

SQL> Select * from DLocation;

DLOC
DNO
1 Houston
4 Stafford
5 Bellaire
5 Sugarland
5 Houston

SQL> Select * from Works_On;

PNO HOURS
SSN
12345 1 32.5
12345 2 7.5
66688 3 40
45345 1 20
45345 2 20
33344 2 10
33344 3 10
33344 10 10
33344 20 10
99988 30 30
99988 10 10
98798 10 35
98798 30 5
98765 30 20
98765 20 15
88866 20
12345 3 15

SQL> Select * from Project;

PNO PNAME PLOCATION DNO


1 ProductX Bellaire 5
2 ProductY Sugarland 5
3 ProductZ Houston 5
30 IOT Stafford 4
10 Computer Stafford 4
20 Reorganize Houston 1

Queries:
Make a list of all project numbers for projects that involve an employee whose last name is
‘Scott’, either as a worker or as a manager of the department that controls the project.

(SELECT DISTINCT PNO


FROM PROJECT P, DEPARTMENT D, EMPLOYEE E WHERE P.DNO=D.DNO
AND D.MGRSSN=E.SSN
AND E.NAME='Scott')
UNION
(SELECT DISTINCT P1.PNO
FROM PROJECT P1, WORKS_ON W, EMPLOYEE E1 WHERE P1.PNO=W.PNO
AND E1.SSN=W.SSN
AND E1.NAME='Scott');

OUTPUT:

PNO
1
2
3
20
Show the resulting salaries if every employee working on the ‘IoT’ project is given a 10
percent raise.

SELECT E.SSN,NAME,((SALARY*0.10)+SALARY) AS NEW_SALARY


FROM EMPLOYEE E,WORKS_ON W
WHERE E.SSN=W.SSN AND PNO=(SELECT PNO FROM PROJECT WHERE PNAME='IOT');
OR
SELECT SSN,NAME,((SALARY*0.10)+SALARY) AS NEW_SALARY
FROM EMPLOYEE NATURAL JOIN WORKS_ON
WHERE PNO=(SELECT PNO FROM PROJECT WHERE PNAME='IOT');

OUTPUT:

SSN NAME NEW_SALARY


99988 Alicia 27500
98765 Jennifer 47300
98798 Ahmad 27500

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 E.DNO=D.DNO AND DNAME='Research';
OR
SELECT SUM(SALARY),MAX(SALARY),MIN(SALARY),AVG(SALARY)
FROM EMPLOYEE NATURAL JOIN DEPARTMENT
WHERE DNAME='Research';

OUTPUT:

MAX(SALARY) MIN(SALARY) AVG(SALARY)


SUM(SALARY)
133000 40000 25000 33250
Retrieve the name of each employee who works on all the projects controlledby department
number 5 (use NOT EXISTS operator).

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

NAME
Scott

For each department that has more than five employees, retrieve the department number
and the number of its employees who are making more than Rs. 6,00,000.

SELECT D.DNO, COUNT (*)


FROM DEPARTMENT D, EMPLOYEE E
WHERE D.DNO=E.DNO
AND E.SALARY>600000
AND D.DNO IN (SELECT E1.DNO
FROM EMPLOYEE E1
GROUP BY E1.DNO
HAVING COUNT (*)>5)
GROUP BY D.DNO;
OUTPUT:

COUNT(*)
DNO
5 2

You might also like