A subquery is like a separate SELECT statement enclosed in parentheses and passed in the predicate of another SQL statement (SELECT, INSERT, UPDATE or DELETE). It acts as a query within a query and is often passed as part of a WHERE or HAVING clause.