*inner join using comma syntax*/ select e.fname , e...

12
/*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;

Upload: others

Post on 02-Nov-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno

/*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;

Page 2: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , 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;

Page 3: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno
Page 4: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , 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;

Page 5: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno

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;

Page 6: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , 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;

Page 7: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno
Page 8: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno

/*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;

Page 9: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno

/*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;

Page 10: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno

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;

Page 11: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno

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;

Page 12: *Inner Join using Comma Syntax*/ Select E.Fname , E ...eecs.csuohio.edu/~sschung/cis430/Examples_LOJGroupByAgg.../*Inner Join using Comma Syntax*/ Select E.Fname , E.Lname , E.Dno