Set operations combine results from two or more queries into a single result. Common set operations include UNION, INTERSECT, and EXCEPT.
Click to reveal answer
beginner
Why are set operations important in databases?
They help combine or compare data from multiple tables or queries easily, making data analysis and reporting simpler and more efficient.
Click to reveal answer
beginner
What does UNION do in SQL?
UNION merges results from two queries and removes duplicate rows, showing all unique rows from both queries.
Click to reveal answer
intermediate
How does INTERSECT differ from UNION?
INTERSECT returns only the rows that appear in both query results, showing common data between them.
Click to reveal answer
intermediate
What is the role of EXCEPT in SQL set operations?
EXCEPT returns rows from the first query that are not present in the second query, helping find differences between datasets.
Click to reveal answer
Which SQL set operation removes duplicate rows when combining results?
AINTERSECT
BUNION
CEXCEPT
DJOIN
✗ Incorrect
UNION combines results and removes duplicates, unlike JOIN which combines rows based on related columns.
What does INTERSECT return?
ARows only in the second query
BAll rows from both queries
CRows only in the first query
DRows common to both queries
✗ Incorrect
INTERSECT returns only the rows that appear in both query results.
Which set operation helps find rows in the first query but not in the second?
AUNION
BINTERSECT
CEXCEPT
DJOIN
✗ Incorrect
EXCEPT returns rows from the first query that are not present in the second query.
Why are set operations useful in SQL?
ATo combine or compare query results easily
BTo create new tables
CTo delete data
DTo update records
✗ Incorrect
Set operations help combine or compare data from multiple queries efficiently.
Which of these is NOT a set operation in SQL?
AGROUP BY
BINTERSECT
CEXCEPT
DUNION
✗ Incorrect
GROUP BY is used for aggregation, not a set operation.
Explain in your own words why set operations matter when working with databases.
Think about how you might want to see data from two lists together or find common or different items.
You got /4 concepts.
Describe the difference between UNION, INTERSECT, and EXCEPT in SQL.
Focus on what each operation returns when combining two sets of data.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of set operations like UNION and INTERSECT in PostgreSQL?
easy
A. To delete rows from multiple tables
B. To create new tables from existing ones
C. To update data in a table
D. To combine or compare results from multiple SELECT queries
Solution
Step 1: Understand set operations
Set operations like UNION and INTERSECT combine or compare results from multiple SELECT queries.
Step 2: Identify their purpose
They help find unique, common, or different data across queries without modifying tables.
Final Answer:
To combine or compare results from multiple SELECT queries -> Option D
Quick Check:
Set operations = combine/compare SELECT results [OK]
Hint: Set operations combine query results, not modify tables [OK]
Common Mistakes:
Thinking set operations modify tables
Confusing set operations with DML commands
Assuming set operations create new tables
2. Which of the following is the correct syntax to combine two SELECT queries using UNION in PostgreSQL?
easy
A. SELECT col1 FROM table1 JOIN SELECT col1 FROM table2;
B. SELECT col1 FROM table1 UNION SELECT col1 FROM table2;
C. SELECT col1 FROM table1 + SELECT col1 FROM table2;
D. SELECT col1 FROM table1 INTERSECT SELECT col1 FROM table2;
Solution
Step 1: Recall UNION syntax
The correct syntax uses UNION keyword between two SELECT statements with matching columns.
Step 2: Check options
Only SELECT col1 FROM table1 UNION SELECT col1 FROM table2; is correct. JOIN is for table joins; + is invalid syntax; INTERSECT is a different operation.
Final Answer:
SELECT col1 FROM table1 UNION SELECT col1 FROM table2; -> Option B
Quick Check:
UNION syntax = SELECT ... UNION SELECT ... [OK]
Hint: UNION joins SELECTs with UNION keyword, no + or JOIN [OK]
Common Mistakes:
Using + instead of UNION
Confusing JOIN with UNION
Mixing INTERSECT with UNION syntax
3. Given these tables: table1: (id) values (1), (2), (3); table2: (id) values (2), (3), (4); What is the result of this query?
SELECT id FROM table1 INTERSECT SELECT id FROM table2;
medium
A. [2, 3]
B. [1, 2, 3, 4]
C. [1]
D. [4]
Solution
Step 1: Understand INTERSECT operation
INTERSECT returns only values present in both queries.
Step 2: Compare table1 and table2 ids
table1 has 1,2,3; table2 has 2,3,4; common values are 2 and 3.
Final Answer:
[2, 3] -> Option A
Quick Check:
INTERSECT = common values [OK]
Hint: INTERSECT returns only common rows between queries [OK]
Common Mistakes:
Including all values from both tables
Confusing INTERSECT with UNION
Returning values only from one table
4. Consider this query:
SELECT id FROM table1 UNION ALL SELECT id FROM table2;
It returns duplicate rows. How can you fix it to return only unique rows?
medium
A. Replace UNION ALL with UNION
B. Add DISTINCT inside each SELECT
C. Use INTERSECT instead of UNION ALL
D. Add GROUP BY id at the end
Solution
Step 1: Understand UNION ALL vs UNION
UNION ALL returns all rows including duplicates; UNION removes duplicates.
Step 2: Fix query to remove duplicates
Replacing UNION ALL with UNION removes duplicates automatically.
Final Answer:
Replace UNION ALL with UNION -> Option A
Quick Check:
UNION removes duplicates, UNION ALL does not [OK]
Hint: Use UNION (not UNION ALL) to remove duplicates [OK]
Common Mistakes:
Using UNION ALL when duplicates are unwanted
Adding DISTINCT inside each SELECT unnecessarily
Using INTERSECT which returns only common rows
5. You want to find all unique customer IDs who made purchases in either 2022 or 2023 from two tables: purchases_2022(customer_id) and purchases_2023(customer_id). Which query correctly returns this list without duplicates?
hard
A. SELECT customer_id FROM purchases_2022 UNION ALL SELECT customer_id FROM purchases_2023;
B. SELECT customer_id FROM purchases_2022 INTERSECT SELECT customer_id FROM purchases_2023;
C. SELECT customer_id FROM purchases_2022 UNION SELECT customer_id FROM purchases_2023;
D. SELECT DISTINCT customer_id FROM purchases_2022, purchases_2023;
Solution
Step 1: Understand the goal
We want all unique customer IDs from either year, combined without duplicates.
Step 2: Evaluate options
SELECT customer_id FROM purchases_2022 INTERSECT SELECT customer_id FROM purchases_2023; returns only customers in both years (common). SELECT customer_id FROM purchases_2022 UNION SELECT customer_id FROM purchases_2023; returns all unique customers from both years. SELECT customer_id FROM purchases_2022 UNION ALL SELECT customer_id FROM purchases_2023; returns all including duplicates. SELECT DISTINCT customer_id FROM purchases_2022, purchases_2023; creates a cross join, not union.
Final Answer:
SELECT customer_id FROM purchases_2022 UNION SELECT customer_id FROM purchases_2023; -> Option C
Quick Check:
UNION = unique combined rows [OK]
Hint: Use UNION to combine unique rows from multiple tables [OK]
Common Mistakes:
Using INTERSECT to get all customers
Using UNION ALL causing duplicates
Using cross join instead of union
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.