0% found this document useful (0 votes)
8 views31 pages

Chapter 6 SQL SET and JOIN Operations

The document provides an overview of SQL SET and JOIN operations, detailing how to combine results from multiple SELECT statements using operations like Union, Intersect, and Minus, as well as various types of JOINs including INNER, LEFT, RIGHT, and FULL OUTER JOINs. Each operation is explained with its syntax and examples for better understanding. Additionally, it includes example tables to illustrate how these operations can be applied in SQL queries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views31 pages

Chapter 6 SQL SET and JOIN Operations

The document provides an overview of SQL SET and JOIN operations, detailing how to combine results from multiple SELECT statements using operations like Union, Intersect, and Minus, as well as various types of JOINs including INNER, LEFT, RIGHT, and FULL OUTER JOINs. Each operation is explained with its syntax and examples for better understanding. Additionally, it includes example tables to illustrate how these operations can be applied in SQL queries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

SQL SET and JOIN

Operations
SQL SET Operation
SQL SET Operation
 The SQL Set operation is used to combine the two or more SQL
SELECT statements.

 Types of Set Operation


 Union

 UnionAll

 Intersect

 Minus
Union
 The SQL Union operation is used to combine the result of two or more
SQL SELECT queries.

 In the union operation, all the number of datatype and columns must
be same in both the tables on which UNION operation is being applied.

 The union operation eliminates the duplicate rows from its resultset.

 Syntax
SELECT column_name FROM table1

UNION

SELECT column_name FROM table2;


Union
 Example:

 SELECT * FROM First UNION SELECT * FROM Second;


Union All
 Union All operation is equal to the Union operation. It returns the set without
removing duplication and sorting the data.

 Syntax
SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2;

 Example: Using the above First and Second table.


SELECT * FROM First
UNION ALL
SELECT * FROM Second;
Union All
Intersect
 It is used to combine two SELECT statements. The Intersect operation
returns the common rows from both the SELECT statements.
 In the Intersect operation, the number of datatype and columns must be
the same.
 It has no duplicates and it arranges the data in ascending order by
default.
 Syntax
SELECT column_name FROM table1
INTERSECT
SELECT column_name FROM table2;

 Example: Using the above First and Second table.


SELECT * FROM First
INTERSECT
SELECT * FROM Second;
Intersect
Minus/Set Differende
 It combines the result of two SELECT statements. Minus operator is
used to display the rows which are present in the first query but absent
in the second query.
 It has no duplicates and data arranged in ascending order by default
 Syntax
SELECT column_name FROM table1
MINUS
SELECT column_name FROM table2;
 Example: Using the above First and Second table.
SELECT * FROM First
MINUS
SELECT * FROM Second;
Minus/Set Differende
SQL JOIN Operation
SQL Join Operation
 In SQL, joins are used to combine records from two or more tables based on a
related column between them. They help to bring data together, making it
possible to query data from multiple tables in a relational database.

 There are different types of joins that are commonly used, each with its own
purpose and behavior. These include:
▪ INNER JOIN

▪ OUTER JOIN

▪ LEFT JOIN

▪ RIGHT JOIN
SQL Join Operation
Inner Join
 The INNER JOIN returns only those records that have matching values in both tables.
It excludes rows that do not have a match in one of the tables.

 Usage: Use INNER JOIN when you want to select only the rows that have corresponding
matches in both tables.

 Syntax:

 SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.common_column =


table2.common_column;

 Performance Consideration: INNER JOIN can be efficient when tables have a strong
relationship through foreign keys. However, it may perform poorly if the dataset is large
and the join condition is complex.
Inner Join
 Example:
SELECT customers.customer_id, customers.customer_name, orders.order_id
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id;
Outer Join
 An OUTER JOIN returns all records when there is a match in either left or right table
records. There are two types of OUTER JOIN:
 LEFT JOIN (or LEFT OUTER JOIN)
 RIGHT JOIN (or RIGHT OUTER JOIN)

 Usage: Use OUTER JOIN when you want to retain all rows from one or both tables, even
if there is no match between them.
Left Outer Join
 The LEFT JOIN returns all records from the left table and the matched records from
the right table. If there is no match, the result is NULL on the side of the right table.

 Syntax:
SELECT column_name(s)

FROM table1

LEFT JOIN table2

ON table1.common_column = table2.common_column;

 Example: Retrieve all customers and their orders, including customers who have not
placed any orders.
SELECT customers.customer_id, customers.customer_name, orders.order_id
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;
Right Outer Join
 The RIGHT JOIN returns all records from the right table and the matched records
from the left table. If there is no match, the result is NULL on the side of the left
table.

 Syntax:
SELECT column_name(s)

FROM table1

RIGHT JOIN table2

ON table1.common_column = table2.common_column;

 Example: Retrieve all orders and the customers who placed them, including orders that
do not have associated customer details.
SELECT customers.customer_id, customers.customer_name, orders.order_id

FROM customers

RIGHT JOIN orders ON customers.customer_id = orders.customer_id;


Full Outer Join
 The FULL OUTER JOIN returns all records when there is a match in either left or right
table records. This join combines the result of LEFT JOIN and RIGHT JOIN, returning rows
that have matches in both tables and rows with unmatched data in either table.

 Syntax:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.common_column = table2.common_column;

 Example: Get all customers and all orders, including those that do not have a corresponding
match in the other table.
SELECT customers.customer_id, customers.customer_name, orders.order_id
FROM customers
FULL OUTER JOIN orders ON customers.customer_id = orders.customer_id;
Example Tables
Example Tables
create table Department create table Manager
(
(
Manager_ID varchar(10) primary key,
Dept_ID varchar(10) primary key, Manager_Name varchar(10) NOT NUll,
Dep_Name varchar(10) NOT NULL Department_ID varchar(10),
foreign key(Department_ID) references
) Department(Dept_ID)
insert into Department values )
('D1','IS'),
insert into Manager values
('D2','CS'),
('M1','Dawit','D1'),
('D3','IT'), ('M2','Hiwot','D2'),
('D4','SE'), ('M3','Abdisa','D3')
('D5','EE')
Example Tables
create table Employee create table Project
(
Emp_ID varchar(10) primary key, (
Emp_Name varchar(10) NOT NULL, Proj_ID varchar(10) primary key,
salary float NOT NULL, Proj_Name varchar(20) NOT NULL,
Dept_ID varchar(10), Team_Memb_ID varchar(10),
Manager_ID varchar(10), foreign key(Team_Memb_ID) references
foreign key(Dept_ID) references Employee(Emp_ID)
Department(Dept_ID),
foreign key(Manager_ID) references )
Manager(Manager_ID)
insert into Project values
)
insert into Employee values ('P1','DB','E1'),
('E1','Dawit',25000,'D1','M1'), ('P2','Networking','E3'),
('E2','Meklit',15000,'D1','M1'),
('P3','HW','E4'),
('E3','Hiwot',25000,'D2','M2'),
('E4','Mesay',20000,'D2','M2'), ('P4','HNS','E2')
('E5','Abdisa',25000,'D3','M3'),
('E6','Siraj',20000,'D1','M1'),
('E7','Nahom',18000,'D2','M2'),
('E8','Yoseph',14000,'D3','M3')
Example Tables
--fetch the Employee Name along with the Department Name they belong to.
--join/inner join
select Emp_Name, Dep_Name from Employee
inner join Department on Employee.Dept_ID = Department.Dept_ID
--or
select e.Emp_Name, d.Dep_Name from Employee e
inner join Department d on e.Dept_ID =d.Dept_ID
Example Tables
-- fetch All the Employee Name and their Department Name they belong to.
-- Left join
select e.Emp_Name, d.Dep_Name from Employee e
left join Department d on e.Dept_ID =d.Dept_ID
Example Tables
fetch All the Department Name and their Employee Name they belong to.
select d.Dep_Name, e.Emp_Name from Department d
left join Employee e on d.Dept_ID = e.Dept_ID
Full Outer Join
-- fetch All the Employee Name and their Department Name they belong to.
-- Right join
select e.Emp_Name, d.Dep_Name from Employee e
Right join Department d on e.Dept_ID =d.Dept_ID

-- right join = inner join + any additional records in the right table.
Full Outer Join
--Fetch details of all employee, their manager, their department and the projects they
works on.
select e.Emp_Name, d.Dep_Name, m.Manager_Name from
Employee e left join Department d on e.Dept_ID =d.Dept_ID
inner join Manager m on m.Manager_ID = e.Manager_ID
Full Outer Join
--Fetch details of all employee, their manager, their department and the projects they
works on.
select e.Emp_Name, d.Dep_Name, m.Manager_Name, p.Proj_Name from
Employee e right join Department d on e.Dept_ID =d.Dept_ID
inner join Manager m on m.Manager_ID = e.Manager_ID
join Project p on p.Team_Memb_ID = e.Emp_ID
Example Tables

select e.Emp_Name, d.Dep_Name, m.Manager_Name, p.Proj_Name from

Employee e right join Department d on e.Dept_ID =d.Dept_ID

inner join Manager m on m.Manager_ID = e.Manager_ID

left join Project p on p.Team_Memb_ID = e.Emp_ID


Example Tables

select e.Emp_Name, d.Dep_Name from Employee e

FULL OUTER JOIN Department d on e.Dept_ID =d.Dept_ID

You might also like