Introduction
In this chapter, we will learn how to use the UNION
operator in SQL. The UNION
operator is used to combine the result sets of two or more SELECT
statements into a single result set. This chapter will cover the syntax, usage, and provide examples to help you understand how to use the UNION
operator effectively.
What is the UNION Operator?
The UNION
operator is used to combine the results of two or more SELECT
statements. Each SELECT
statement within the UNION
must have the same number of columns in the result sets with similar data types. The UNION
operator removes duplicate records by default.
Syntax for UNION
Basic Syntax
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
column1, column2, ...
: The columns you want to retrieve.table1, table2, ...
: The names of the tables from which you want to retrieve data.
Example
Assume we have two tables named employees
and contractors
:
SELECT first_name, last_name, email
FROM employees
UNION
SELECT first_name, last_name, email
FROM contractors;
This command retrieves the first_name
, last_name
, and email
columns from both the employees
and contractors
tables and combines them into a single result set, removing any duplicate records.
Step-by-Step Example
1. Create Sample Tables
First, we will create two sample tables named employees
and contractors
.
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
department_id INT,
salary DECIMAL(10, 2)
);
CREATE TABLE contractors (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
hourly_rate DECIMAL(10, 2)
);
CREATE TABLE departments (
department_id INT PRIMARY KEY,
department_name VARCHAR(50)
);
2. Insert Sample Data
INSERT INTO employees (first_name, last_name, email, department_id, salary)
VALUES
('Ramesh', 'Kumar', 'ramesh.kumar@example.com', 1, 50000),
('Sita', 'Patel', 'sita.patel@example.com', 2, 60000),
('Arjun', 'Singh', 'arjun.singh@example.com', 1, 55000);
INSERT INTO contractors (first_name, last_name, email, hourly_rate)
VALUES
('Priya', 'Sharma', 'priya.sharma@example.com', 40),
('Ravi', 'Verma', 'ravi.verma@example.com', 35),
('Sita', 'Patel', 'sita.patel@example.com', 45);
INSERT INTO departments (department_id, department_name)
VALUES
(1, 'HR'),
(2, 'Finance'),
(3, 'IT');
3. Using the UNION Operator
To retrieve combined first_name
, last_name
, and email
from both employees
and contractors
:
SELECT first_name, last_name, email
FROM employees
UNION
SELECT first_name, last_name, email
FROM contractors;
Output
first_name | last_name | |
---|---|---|
Ramesh | Kumar | ramesh.kumar@example.com |
Sita | Patel | sita.patel@example.com |
Arjun | Singh | arjun.singh@example.com |
Priya | Sharma | priya.sharma@example.com |
Ravi | Verma | ravi.verma@example.com |
4. Using UNION ALL
The UNION ALL
operator is used to combine the results of two or more SELECT
statements, including duplicate records.
Example
To retrieve combined first_name
, last_name
, and email
from both employees
and contractors
, including duplicates:
SELECT first_name, last_name, email
FROM employees
UNION ALL
SELECT first_name, last_name, email
FROM contractors;
Output
first_name | last_name | |
---|---|---|
Ramesh | Kumar | ramesh.kumar@example.com |
Sita | Patel | sita.patel@example.com |
Arjun | Singh | arjun.singh@example.com |
Priya | Sharma | priya.sharma@example.com |
Ravi | Verma | ravi.verma@example.com |
Sita | Patel | sita.patel@example.com |
5. Using UNION with Different Columns
To use the UNION
operator, the number of columns and their data types must be the same. You can use aliases to make sure the columns match.
Example
To retrieve first_name
, last_name
, and a calculated payment
column from both employees
and contractors
:
SELECT first_name, last_name, salary AS payment
FROM employees
UNION
SELECT first_name, last_name, hourly_rate * 40 * 4 AS payment
FROM contractors;
Output
first_name | last_name | payment |
---|---|---|
Ramesh | Kumar | 50000.00 |
Sita | Patel | 60000.00 |
Arjun | Singh | 55000.00 |
Priya | Sharma | 6400.00 |
Ravi | Verma | 5600.00 |
Sita | Patel | 7200.00 |
Using ORDER BY with UNION
You can use the ORDER BY
clause to sort the combined result set. The ORDER BY
clause should be placed at the end of the last SELECT
statement.
Example
To retrieve combined first_name
, last_name
, and email
from both employees
and contractors
and sort by last_name
:
SELECT first_name, last_name, email
FROM employees
UNION
SELECT first_name, last_name, email
FROM contractors
ORDER BY last_name;
Output
first_name | last_name | |
---|---|---|
Ramesh | Kumar | ramesh.kumar@example.com |
Arjun | Singh | arjun.singh@example.com |
Sita | Patel | sita.patel@example.com |
Priya | Sharma | priya.sharma@example.com |
Ravi | Verma | ravi.verma@example.com |
Conclusion
The UNION
operator is used for combining the results of multiple SELECT
statements into a single result set. This chapter covered the basic syntax, using UNION
and UNION ALL
, using UNION
with different columns, and sorting the combined result set. Understanding how to use the UNION
operator effectively will enhance your ability to query and analyze your database data.
Comments
Post a Comment
Leave Comment