DBMS_Assignment
DBMS_Assignment
USN : 2SD22CS012
Branch & Division : CSE - A
SQL>DESC EMPLOYEECOMPANY;
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPID NOT NULL NUMBER
EMPNAME CHAR(50)
DOB DATE
STATE CHAR(25)
CITY CHAR(25)
Page 1 of 6
SQL>SELECT * FROM EMPLOYEECOMPANY;
EMPID EMPNAME DOB STATE CITY
---------- ------------------------------------------- ------------ --------------------- -------------------------
9 Sumukh 24-JUL-98 Karnataka Mysore
10 Ganesh 13-JAN-95 Karnataka Ankola
1 Ananya 21-MAR-94 Karnataka Bengaluru
2 Aditi 22-JUN-92 Karnataka Mysore
3 Amay 07-APR-94 Karnataka Dharwad
4 Akshata 04-NOV-90 Karnataka Ankola
5 Anusha 19-MAR-24 Karnataka Bengaluru
6 Gagan 03-APR-95 Karnataka Mysore
8 Snehal 12-JUN-92 Karnataka Karwar
WorksFor :
SQL>CREATE TABLE WORKS (
EmpID NUMBER NOT NULL PRIMARY KEY,
CompanyName VARCHAR(100),
Salary DECIMAL(10, 2),
FOREIGN KEY (EmpID) REFERENCES EMPLOYEE
);
SQL>DESC WORKSFOR;
Name Null? Type
---------------------------------- -------- ----------------------------
EMPID NOT NULL NUMBER
COMPANYNAME CHAR(25)
SALARY NUMBER
Page 2 of 6
2 Innovate Ltd 75000
3 FutureSolutions 90000
4 Reliance 80000
5 Innovate Ltd 95000
6 Reliance 85000
7 FutureSolutions 75000
8 Reliance 90000
9 Reliance 85000
10 Reliance 76000
Location :
SQL>CREATE TABLE LOCATION (
CompanyName VARCHAR(100),
City VARCHAR(50),
PRIMARY KEY (CompanyName, City),
FOREIGN KEY (CompanyName) REFERENCES WORKSFOR
);
TABLE CREATED.
Page 3 of 6
Manages :
SQL>CREATE TABLE MANAGES (
ManagerEmpID NUMBER NOT NULL,
EmpID NUMBER NOT NULL,
PRIMARY KEY (ManagerEmpID, EmpID),
FOREIGN KEY (EmpID) REFERENCES EMPLOYEE
);
TABLE CREATED.
SQL>DESC MANAGES;
Name Null? Type
--------------------------------- -------- ----------------------------
MANAGEREMPID NOT NULL NUMBER
EMPID NOT NULL NUMBER
Page 4 of 6
a)Find the names of all the employees who have born on Monday and live in the same city as
company for which they work.
SELECT EmpName
FROM EmployeeCompany
WHERE Trim(to_char(dob,'DAY'))='MONDAY'
INTERSECT
SELECT e.EmpName
FROM EmployeeCompany e
JOIN worksfor w on w.EmpID = e.EmpID
JOIN location l on l.companyname=w.companyname
WHERE e.city=l.city;
EMPNAME
--------------------------
Ananya
Gagan
b)Find the names of all the employees eho live in same city as their manager
SELECT e1.EmpName
FROM EmployeeCompany e1
JOIN Manages m on m.Empid = e1.EmpID
JOIN EmployeeCompany e2 on e2. EmpID= m.managerEmpID
WHERE e2.city=e1.city;
EMPNAME
--------------------
Anusha
Snehal
Page 5 of 6
c)Find the details of all employees who are the top three salary taker in Reliance
SELECT *
FROM (
SELECT ec.*, wf.salary
FROM employeeCompany ec
JOIN worksFor wf ON ec.EmpID = wf.empid
WHERE wf.companyName = 'Reliance'
ORDER BY wf.salary DESC
)
WHERE ROWNUM <= 3;
Page 6 of 6