Assig 9
Assig 9
ROLL – 13000121024
6TH SEMESTER
ASSIGNMENT 9
Question:
Consider the following relations and Draw the ER, EER Diagram, Relational Model and write the SQL
statement for the following queries:
Create the tables and insert 5 sets of records into each.
employee (personname, street, city)
works (personname, companyname, salary)
company (companyname, city)
manages (personname, managername)
ER DIAGRAM
RELATIONAL MODEL
CREATE TABLE EMPLOYEE(EMP_ID VARCHAR2(5) PRIMARY KEY,PERSONNAME
VARCHAR2(20),STREET VARCHAR2(20),CITY VARCHAR2(20));
b) Find the names and cities of residence of all employees who work for Axis Bank.
SELECT EMPLOYEE.PERSONNAME, EMPLOYEE.CITY FROM EMPLOYEE,
COMPANY, WORKS WHERE EMPLOYEE.EMP_ID = WORKS.EMP_ID AND
COMPANY.COMP_ID = WORKS.COMP_ID AND COMPANY.COMPANYNAME='AXIS
BANK';
c) Find the names, street addresses, and cities of residence of all employees who work for
Axis Bank and earn more than Rs.30000 per annum.
SELECT EMPLOYEE.PERSONNAME, EMPLOYEE.STREET, EMPLOYEE.CITY FROM
EMPLOYEE, COMPANY, WORKS WHERE EMPLOYEE.EMP_ID = WORKS.EMP_ID
AND COMPANY.COMP_ID = WORKS.COMP_ID AND
COMPANY.COMPANYNAME='AXIS BANK' AND WORKS.SALARY>30000;
d) Find all employees who live in the same city as the company for which they work is
located.
SELECT EMPLOYEE.PERSONNAME FROM EMPLOYEE, COMPANY, WORKS WHERE
EMPLOYEE.EMP_ID = WORKS.EMP_ID AND COMPANY.COMP_ID =
WORKS.COMP_ID AND EMPLOYEE.CITY = COMPANY.CITY;
e) Find all employees who live in the same city and on the same street as their managers.
SELECT EMPLOYEE.PERSONNAME FROM EMPLOYEE,MANAGES WHERE
EMPLOYEE.EMP_ID = MANAGES.EMP_ID AND EMPLOYEE.STREET IN (SELECT
EMPLOYEE.STREET FROM EMPLOYEE, MANAGES WHERE EMPLOYEE.EMP_ID =
MANAGES.EMP_ID) AND EMPLOYEE.CITY IN (SELECT EMPLOYEE.CITY FROM
EMPLOYEE, MANAGES WHERE EMPLOYEE.EMP_ID = MANAGES.MANAGER_ID);
f) Find all employees in the database who do not work for Axis Bank.
g) Find all employees who earn more than every employee of Axis Bank.
SELECT EMPLOYEE.PERSONNAME FROM EMPLOYEE,WORKS,COMPANY WHERE
EMPLOYEE.EMP_ID = WORKS.EMP_ID AND COMPANY.COMP_ID =
WORKS.COMP_ID AND COMPANY.COMPANYNAME != 'AXIS BANK' AND
WORKS.SALARY>(SELECT MAX(WORKS.SALARY) FROM
EMPLOYEE,WORKS,COMPANY WHERE EMPLOYEE.EMP_ID = WORKS.EMP_ID AND
COMPANY.COMP_ID = WORKS.COMP_ID AND COMPANY.COMPANYNAME = 'AXIS
BANK');
h) Assume that the companies may be located in several cities. Find all companies
located in every city in which Axis Bank is located.
SELECT COMPANY.COMPANYNAME FROM COMPANY WHERE
COMPANY.COMPANYNAME != 'AXIS BANK' AND COMPANY.CITY IN (SELECT
COMPANY.CITY FROM COMPANY WHERE COMPANYNAME = 'AXIS BANK');
i) Find all employees who earn more than the average salary of all employees of their
company.
p) Give all managers in the database a 10 percent raise, unless the salary would be greater
than Rs.300000. In such cases, give only a 3 percent raise.
UPDATE WORKS SET WORKS.SALARY = WORKS.SALARY+
(WORKS.SALARY*10/100) WHERE WORKS.SALARY<30000 AND WORKS.EMP_ID IN
(SELECT MANAGES.EMP_ID FROM MANAGES);