Bird
Raised Fist0
DBMS Theoryknowledge~5 mins

Subqueries and nested queries in DBMS Theory - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a subquery in SQL?
A subquery is a query written inside another query. It helps to get data that will be used by the main query.
Click to reveal answer
beginner
How does a nested query differ from a simple query?
A nested query is a query inside another query, while a simple query stands alone without any inner queries.
Click to reveal answer
intermediate
Can subqueries return multiple rows or columns?
Yes, subqueries can return one or many rows and columns depending on how they are written and used.
Click to reveal answer
intermediate
Where can subqueries be used in SQL statements?
Subqueries can be used in SELECT, WHERE, FROM, and HAVING clauses to filter, calculate, or join data.
Click to reveal answer
advanced
What is the difference between correlated and non-correlated subqueries?
A correlated subquery depends on the outer query for its values and runs once per row, while a non-correlated subquery runs independently once.
Click to reveal answer
What is a subquery in SQL?
AA query that updates data
BA query inside another query
CA query that deletes tables
DA query that creates indexes
Where can subqueries be used in SQL?
AOnly in SELECT clause
BOnly in WHERE clause
CIn SELECT, WHERE, FROM, and HAVING clauses
DOnly in CREATE statements
What does a correlated subquery depend on?
AIt depends on the user input
BIt runs independently
CIt depends on the database engine
DIt depends on the outer query
Can subqueries return multiple rows?
AYes, they can return multiple rows
BThey return no rows
COnly one column
DNo, only one row
What is a nested query?
AA query inside another query
BA query that deletes data
CA query that creates tables
DA query that runs outside the database
Explain what a subquery is and give an example of where it might be used.
Think about how one query can help another by providing data.
You got /2 concepts.
    Describe the difference between correlated and non-correlated subqueries.
    Consider if the subquery depends on the outer query or not.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is a subquery in a database query?
      easy
      A. A query nested inside another query
      B. A query that updates data
      C. A query that deletes tables
      D. A query that creates indexes

      Solution

      1. Step 1: Understand the definition of subquery

        A subquery is a query written inside another query to help filter or calculate data.
      2. Step 2: Identify the correct description

        Among the options, only "A query nested inside another query" matches the definition of a subquery.
      3. Final Answer:

        A query nested inside another query -> Option A
      4. Quick Check:

        Subquery = Nested query [OK]
      Hint: Subquery means query inside another query [OK]
      Common Mistakes:
      • Confusing subquery with update or delete operations
      • Thinking subquery creates indexes
      • Mixing subquery with table creation
      2. Which of the following is the correct syntax to use a subquery in the WHERE clause?
      easy
      A. SELECT * FROM table WHERE column = (SELECT value FROM other_table);
      B. SELECT * FROM table WHERE SELECT value FROM other_table = column;
      C. SELECT * FROM table WHERE column IN SELECT value FROM other_table;
      D. SELECT * FROM table WHERE column = SELECT value FROM other_table;

      Solution

      1. Step 1: Review correct subquery syntax in WHERE clause

        The subquery must be enclosed in parentheses and used as a value to compare with a column.
      2. Step 2: Check each option

        SELECT * FROM table WHERE column = (SELECT value FROM other_table); correctly uses parentheses around the subquery. Options A, B, and D have syntax errors or missing parentheses.
      3. Final Answer:

        SELECT * FROM table WHERE column = (SELECT value FROM other_table); -> Option A
      4. Quick Check:

        Subquery in WHERE uses parentheses [OK]
      Hint: Subquery in WHERE must be inside parentheses [OK]
      Common Mistakes:
      • Omitting parentheses around subquery
      • Placing subquery before column
      • Using IN without parentheses
      3. Consider the tables:
      Employees(emp_id, name, dept_id)
      Departments(dept_id, dept_name)
      What does this query return?
      SELECT name FROM Employees WHERE dept_id = (SELECT dept_id FROM Departments WHERE dept_name = 'Sales');
      medium
      A. Names of employees who do not work in Sales
      B. Names of all employees regardless of department
      C. Names of employees who work in the Sales department
      D. Department names of all employees

      Solution

      1. Step 1: Understand the subquery

        The subquery finds the dept_id for the department named 'Sales'.
      2. Step 2: Apply the subquery result in the main query

        The main query selects employee names whose dept_id matches the Sales dept_id.
      3. Final Answer:

        Names of employees who work in the Sales department -> Option C
      4. Quick Check:

        Subquery filters Sales dept_id, main query filters employees [OK]
      Hint: Subquery finds Sales dept_id, main query filters employees [OK]
      Common Mistakes:
      • Thinking it returns all employees
      • Confusing employee names with department names
      • Ignoring subquery filtering
      4. Identify the error in this query:
      SELECT name FROM Employees WHERE dept_id = SELECT dept_id FROM Departments WHERE dept_name = 'HR';
      medium
      A. Wrong table name used
      B. Missing parentheses around the subquery
      C. Using = instead of IN
      D. Missing WHERE clause in subquery

      Solution

      1. Step 1: Check subquery syntax

        The subquery must be enclosed in parentheses when used in WHERE clause comparisons.
      2. Step 2: Identify the error in the query

        The query misses parentheses around the subquery, causing a syntax error.
      3. Final Answer:

        Missing parentheses around the subquery -> Option B
      4. Quick Check:

        Subquery needs parentheses [OK]
      Hint: Always put subqueries in parentheses [OK]
      Common Mistakes:
      • Omitting parentheses
      • Confusing = with IN unnecessarily
      • Incorrect table names
      5. You want to find all employees who earn more than the average salary in their department. Which query correctly uses a subquery to achieve this?
      hard
      A. SELECT emp_name FROM Employees WHERE salary > (SELECT MAX(salary) FROM Employees);
      B. SELECT emp_name FROM Employees WHERE salary > AVG(salary);
      C. SELECT emp_name FROM Employees WHERE salary > (SELECT salary FROM Employees);
      D. SELECT emp_name FROM Employees WHERE salary > (SELECT AVG(salary) FROM Employees WHERE dept_id = Employees.dept_id);

      Solution

      1. Step 1: Understand the requirement

        We need to compare each employee's salary to the average salary of their own department.
      2. Step 2: Analyze each option

        SELECT emp_name FROM Employees WHERE salary > (SELECT AVG(salary) FROM Employees WHERE dept_id = Employees.dept_id); uses a correlated subquery that calculates the average salary for the employee's department. Options A, B, and C do not correctly calculate the average per department or use wrong aggregates.
      3. Final Answer:

        SELECT emp_name FROM Employees WHERE salary > (SELECT AVG(salary) FROM Employees WHERE dept_id = Employees.dept_id); -> Option D
      4. Quick Check:

        Correlated subquery compares salary to dept average [OK]
      Hint: Use correlated subquery with dept_id to get average salary [OK]
      Common Mistakes:
      • Using global average instead of per department
      • Using MAX instead of AVG
      • Not correlating subquery with outer query
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard