0% found this document useful (0 votes)
1 views33 pages

Set-Operators-in-SQL

The document explains basic SQL set operators, including JOIN types (INNER, LEFT, RIGHT, FULL), UNION, UNION ALL, INTERSECT, and EXCEPT. It provides examples of SQL commands using sample tables to illustrate how these operators work and their outputs. Each operator serves a specific purpose in combining or filtering query results based on specified conditions.

Uploaded by

tongquin
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)
1 views33 pages

Set-Operators-in-SQL

The document explains basic SQL set operators, including JOIN types (INNER, LEFT, RIGHT, FULL), UNION, UNION ALL, INTERSECT, and EXCEPT. It provides examples of SQL commands using sample tables to illustrate how these operators work and their outputs. Each operator serves a specific purpose in combining or filtering query results based on specified conditions.

Uploaded by

tongquin
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/ 33

Basic Set Operators

in SQL
SQL Join
A JOIN clause is used to combine
rows from two or more tables,
based on a related column
between them.
Table 1 − Orders Table

OrderID CustomerID OrderDate

10308 2 1996-09-18

10309 37 1996-09-19

10310 77 1996-09-20
Table 2 − Customers Table

CustomerID CustomerName ContactName Country

1 Alfreds Futterkiste Maria Anders Germany

2 Ana Trujillo Emparedados y Ana Trujillo Mexico


helados

3 Antonio Moreno Taquería Antonio Moreno Mexico


Then, we can create the following SQL statement (that contains an INNER JOIN), that
selects records that have matching values in both tables:

Example:

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate


FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

Base on the two tables, what would be the result of this SQL command?
The result will be:

OrderID CustomerName OrderDate

10308 Ana Trujillo Emparedados y 1996-09-18


helados
Different Types of SQL Joins
● INNER JOIN: Returns records that have matching values in both
tables
● LEFT (OUTER) JOIN: Returns all records from the left table, and the
matched records from the right table
● RIGHT (OUTER) JOIN: Returns all records from the right table, and
the matched records from the left table
● FULL (OUTER) JOIN: Returns all records when there is a match in
either left or right table
Union
The Union operator combines the results of two or
more queries into a distinct single result set that
includes all the rows that belong to all queries in the
Union. In this operation, it combines two more queries
and removes the duplicates.

SQL UNION clause/operator is used to combine the


results of two or more SELECT statements without
returning any duplicate rows.
Union
How to use this Operator?

To use this UNION clause, each SELECT statement must have


● The same number of columns selected
● The same number of column expressions
● The same data type and
● Have them in the same order
But they need not have to be in the same length.
The basic syntax of UNION:
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION

SELECT column1 [, column2 ]


FROM table1 [, table2 ]
[WHERE condition]
For example, the table ‘A’ has 1,2, and 3 and the table ‘B’ has 3,4,5.
Table 1 − CUSTOMERS Table is as follows
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Table 2 − ORDERS Table is as follows.
+-----+---------------------+-------------+--------+
|OID | DATE | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 | 3 | 3000 |
| 100 | 2009-10-08 00:00:00 | 3 | 1500 |
| 101 | 2009-11-20 00:00:00 | 2 | 1560 |
| 103 | 2008-05-20 00:00:00 | 4 | 2060 |
+-----+---------------------+-------------+--------+
Using this SQL Commands:

SQL> SELECT ID, NAME, AMOUNT, DATE


FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
UNION
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
RIGHT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Base on the two tables above, What would be the output or result of this command?
This would produce the following result.
+------+----------+--------+---------------------+
| ID | NAME | AMOUNT | DATE |
+------+----------+--------+---------------------+
| 1 | Ramesh | NULL | NULL |
| 2 | Khilan | 1560 | 2009-11-20 00:00:00 |
| 3 | kaushik | 3000 | 2009-10-08 00:00:00 |
| 3 | kaushik | 1500 | 2009-10-08 00:00:00 |
| 4 | Chaitali | 2060 | 2008-05-20 00:00:00 |
| 5 | Hardik | NULL | NULL |
| 6 | Komal | NULL | NULL |
| 7 | Muffy | NULL | NULL |
+------+----------+--------+---------------------+
Union All
UNION ALL operator is used
to combine the results of two
SELECT statements including
duplicate rows.

In simple terms, it combines


the two or more row sets and
keeps duplicates.
The basic syntax of the UNION ALL is:

SELECT column1 [, column2 ]


FROM table1 [, table2 ]
[WHERE condition]

UNION ALL

SELECT column1 [, column2 ]


FROM table1 [, table2 ]
[WHERE condition]
For example, the table ‘A’ has 1,2, and 3 and the table ‘B’ has 3,4,5.
Using this SQL Commands:

SQL> SELECT ID, NAME, AMOUNT, DATE


FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
UNION ALL
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
RIGHT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Base on the two tables above, What would be the output or result of this command?
This would produce the following result.
+------+----------+--------+---------------------+
| ID | NAME | AMOUNT | DATE |
+------+----------+--------+---------------------+
| 1 | Ramesh | NULL | NULL |
| 2 | Khilan | 1560 | 2009-11-20 00:00:00 |
| 3 | kaushik | 1500 | 2009-10-08 00:00:00 |
| 4 | Chaitali | 2060 | 2008-05-20 00:00:00 |
| 5 | Hardik | NULL | NULL |
| 6 | Komal | NULL | NULL |
| 7 | Muffy | NULL | NULL |
| 3 | kaushik | 1500 | 2009-10-08 00:00:00 |
| 2 | Khilan | 1560 | 2009-11-20 00:00:00 |
| 4 | Chaitali | 2060 | 2008-05-20 00:00:00 |
+------+----------+--------+---------------------+
There are two other clauses or
operators, which are like the
UNION clause.
Intersect Clause
The SQL INTERSECT clause/operator is
used to combine two SELECT statements, but
returns rows only from the first SELECT statement
that are identical to a row in the second SELECT
statement. This means INTERSECT returns only
common rows returned by the two SELECT
statements.

This is used to combine two SELECT


statements, but returns rows only from
the first SELECT statement that are
identical to a row in the second SELECT
statement.
Intersection Clause
Syntax
The basic syntax of INTERSECT is as follows.

SELECT column1 [, column2 ]


FROM table1 [, table2 ]
[WHERE condition]
INTERSECT
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

Here, the given condition could be any given expression based on your requirement.
For the same dataset from the aforementioned example, the intersect operator
output is given below
Table 1 − CUSTOMERS Table is as follows
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Table 2 − ORDERS Table is as follows.
+-----+---------------------+-------------+--------+
|OID | DATE | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 | 3 | 3000 |
| 100 | 2009-10-08 00:00:00 | 3 | 1500 |
| 101 | 2009-11-20 00:00:00 | 2 | 1560 |
| 103 | 2008-05-20 00:00:00 | 4 | 2060 |
+-----+---------------------+-------------+--------+
Considering the following two tables.
Now, let us join these two tables in our SELECT statement as follows.

SQL> SELECT ID, NAME, AMOUNT, DATE


FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
INTERSECT
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
RIGHT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
This would produce the following result.
+------+---------+--------+---------------------+
| ID | NAME | AMOUNT | DATE |
+------+---------+--------+---------------------+
| 3 | kaushik | 3000 | 2009-10-08 00:00:00 |
| 3 | kaushik | 1500 | 2009-10-08 00:00:00 |
| 2 | Ramesh | 1560 | 2009-11-20 00:00:00 |
| 4 | kaushik | 2060 | 2008-05-20 00:00:00 |
+------+---------+--------+---------------------+
Except Clause
The EXCEPT operator lists the
rows in the first that are not in the
second.

This combines two SELECT


statements and returns rows
from the first SELECT
statement that are not
returned by the second
SELECT statement.
Except Clause
Syntax
The basic syntax of Except is:

SELECT column1 [, column2 ]


FROM table1 [, table2 ]
[WHERE condition]

EXCEPT

SELECT column1 [, column2 ]


FROM table1 [, table2 ]
[WHERE condition]

Here, the given condition could be any given expression based on your requirement.
For the same dataset from the aforementioned example, the Except operator output is
given below
Considering the two tables above.
Now, let us join these two tables in our SELECT statement as follows.

SQL> SELECT ID, NAME, AMOUNT, DATE


FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
EXCEPT
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
RIGHT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
This would produce the following result.
+----+---------+--------+---------------------+
| ID | NAME | AMOUNT | DATE |
+----+---------+--------+---------------------+
| 1 | Ramesh | NULL | NULL |
| 5 | Hardik | NULL | NULL |
| 6 | Komal | NULL | NULL |
| 7 | Muffy | NULL | NULL |
+----+---------+--------+---------------------
+

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy