*inner join using comma syntax*/ select e.fname , e...
TRANSCRIPT
/*Inner Join using Comma Syntax*/
Select E.Fname, E.Lname, E.Dno, D.Dnumber
From Employee E, Department D
Where E.dno = D.Dnumber;
/*Left outer Join with On Clause*/
Select E.Fname, E.Lname, E.Dno, D.Dnumber From Department D LEFT OUTER JOIN Employee E
On D.Dnumber = E.dno;
Select D.dname, D.dnumber, E.dno, E.ssn
From Department D, Employee E where D.Dnumber = E.dno;
Select D.dnumber, Count(E.dno) From Department D, Employee E
where D.Dnumber = E.dno
Group By D.dnumber;
Select D.dnumber, Count(*)
From Department D, Employee E
where D.Dnumber = E.dno Group By D.dnumber;
Select E.dno, Count(E.dno)
From Department D, Employee E
where D.Dnumber = E.dno
Group By E.dno;
Select E.dno, Count(*)
From Department D, Employee E where D.Dnumber = E.dno
Group By E.dno;
Select D.dname, D.dnumber, E.dno, E.ssn, E.lname From Department D Left Outer Join Employee E
ON D.Dnumber = E.dno;
Select D.dnumber, Count(E.dno)
From Department D Left Outer Join Employee E
ON D.Dnumber = E.dno
Group By D.dnumber;
Select D.dnumber, Count(*) From Department D Left Outer Join Employee E
ON D.Dnumber = E.dno
Group By D.dnumber;
Select E.dno, Count(E.dno)
From Department D Left Outer Join Employee E
ON D.Dnumber = E.dno Group By E.dno;
Select E.dno, Count(*) From Department D Left Outer Join Employee E
ON D.Dnumber = E.dno
Group By E.dno;
/*Same Queries*/ Select E.ssn, Count(E.ssn)
From Works_On W, Employee E
Where W.essn = E.ssn Group By E.ssn;
Select E.ssn, Count(W.pno) From Works_On W, Employee E
Where W.essn = E.ssn
Group By E.ssn;
Select E.ssn, Count(*) From Works_On W, Employee E
Where W.essn = E.ssn
Group By E.ssn;
/*Same query*/
Select E.ssn From Works_On W, Employee E
Where W.essn = E.ssn
Group By E.ssn
Having Count(E.ssn) > 2;
Select E.ssn
From Works_On W, Employee E Where W.essn = E.ssn
Group By E.ssn
Having Count(W.pno) > 2;
Select E.ssn
From Works_On W, Employee E
Where W.essn = E.ssn Group By E.ssn
Having Count(*) > 2;
/*It returns the managers with no dependent as NULL (For 8888445555)
and the Non-manager level employees with Dependents as NULL (For 453453453) together.
HOWEVER, it returns all the repeated dept column values for all the matching
tuples to list the employee's multiple dependents (a manager and also has dependents) --> NOT a GOOD WAY */
Select D.dnumber, D. dname, D.mgrssn, dp.essn, dp.dependent_name
From Department D Full Outer Join Dependent dp ON D.mgrssn = dp.essn;
SELECT D.Dnumber, D.DName, E.FNAME, E.LNAME, S.FNAME, S.LNAME
FROM EMPLOYEE E LEFT OUTER JOIN EMPLOYEE S ON E.SuperSsn = S.SSN, DEPARTMENT D WHERE D.Dnumber = E.Dno
ORDER BY D.Dnumber, D.Dname;
Physical Query Execution Plan for the query Q:
Q:
Select E.ssn
From Works_On W, Employee E Where W.essn = E.ssn
Group By E.ssn
Having Count(E.ssn) > 2;