DBMS
Topperworld.in
JOIN IN DBMS
Join is an operation in DBMS(Database Management System) that
combines the row of two or more tables based on related columns
between them.
The main purpose of Join is to retrieve the data from multiple tables in
other words Join is used to perform multi-table query. It is denoted by ⨝.
Syntax:
R3 <- ⨝(R1) <join_condition> (R2)
where R1 and R2 are two relations to be join and R3 is a relation that will holds
the result of join operation.
Example:
Temp <- ⨝(student) S.roll==E.roll(Exam)
where S and E are alias of the student and exam respectively
Types of Join
1) Inner Join
2) Outer join
©Topperwor
DBMS
Inner join
Inner Join is a join operation in DBMS that combines two or more table based
on related columns and return only rows that have matching values among
tables.Inner join of two types.
1) Equi Join
2) Natural Join
Equi join
It is also known as an inner join.
It is the most common join.
It is based on matched data as per the equality condition. The equi join
uses the comparison operator(=).
Example:
CUSTOMER RELATION
CLASS_ID NAME
1 John
2 Harry
3 Jackson
©Topperwor
DBMS
PRODUCT
PRODUCT_ID CITY
1 Delhi
2 Mumbai
3 Noida
Input:
CUSTOMER ⋈ PRODUCT
Output:
CLASS_ID NAME PRODUCT_ID CITY
1 John 1 Delhi
2 Harry 2 Mumbai
3 Harry 3 Noida
©Topperwor
DBMS
Natural Join
A natural join is the set of tuples of all combinations in R and S that are
equal on their common attribute names.
It is denoted by ⋈.
Example: Let's use the above EMPLOYEE table and SALARY table:
Input:
∏EMP_NAME, SALARY (EMPLOYEE ⋈ SALARY)
Output:
EMP_NAME SALARY
Stephan 50000
Jack 30000
Harry 25000
©Topperwor
DBMS
Outer Join
The outer join operation is an extension of the join operation. It is used to deal
with missing information.
Example:
EMPLOYEE
EMP_NAME STREET CITY
Ram Civil line Mumbai
Shyam Park street Kolkata
Ravi M.G. Street Delhi
Hari Nehru nagar Hyderabad
FACT_WORKERS
EMP_NAME BRANCH SALARY
Ram Infosys 10000
Shyam Wipro 20000
Kuber HCL 30000
©Topperwor
DBMS
Hari TCS 50000
Input:
(EMPLOYEE ⋈ FACT_WORKERS)
Output:
EMP_NAME STREET CITY BRANCH SALARY
Ram Civil line Mumbai Infosys 10000
Shyam Park street Kolkata Wipro 20000
Hari Nehru nagar Hyderabad TCS 50000
An outer join is basically of three types:
1. Left outer join
2. Right outer join
3. Full outer join
a. Left outer join:
Left outer join contains the set of tuples of all combinations in R and S that
are equal on their common attribute names.
In the left outer join, tuples in R have no matching tuples in S.
It is denoted by ⟕.
©Topperwor
DBMS
Example: Using the above EMPLOYEE table and FACT_WORKERS table
Input:
EMPLOYEE ⟕ FACT_WORKERS
EMP_NAME STREET CITY BRANCH SALARY
Ram Civil line Mumbai Infosys 10000
Shyam Park street Kolkata Wipro 20000
Hari Nehru street Hyderabad TCS 50000
Ravi M.G. Street Delhi NULL NULL
b. Right outer join:
Right outer join contains the set of tuples of all combinations in R and S
that are equal on their common attribute names.
In right outer join, tuples in S have no matching tuples in R.
It is denoted by ⟖.
Example: Using the above EMPLOYEE table and FACT_WORKERS Relation
Input:
EMPLOYEE ⟖ FACT_WORKERS
©Topperwor
DBMS
Output:
ADVERTISEMENT
EMP_NAME BRANCH SALARY STREET CITY
Ram Infosys 10000 Civil line Mumbai
Shyam Wipro 20000 Park street Kolkata
Hari TCS 50000 Nehru street Hyderabad
Kuber HCL 30000 NULL NULL
c. Full outer join:
Full outer join is like a left or right join except that it contains all rows from
both tables.
In full outer join, tuples in R that have no matching tuples in S and tuples in
S that have no matching tuples in R in their common attribute name.
It is denoted by ⟗.
Example: Using the above EMPLOYEE table and FACT_WORKERS table
Input:
EMPLOYEE ⟗ FACT_WORKERS
©Topperwor
DBMS
Output:
EMP_NAME STREET CITY BRANCH SALARY
Ram Civil line Mumbai Infosys 10000
Shyam Park street Kolkata Wipro 20000
Hari Nehru street Hyderabad TCS 50000
Ravi M.G. Street Delhi NULL NULL
Kuber NULL NULL HCL 30000
©Topperwor