A subquery, or nested query, allows a query to be run within another SQL statement. Subqueries return intermediate results that can be used by the outer query. They are useful when the exact value needed is unknown but can be determined by a separate SELECT statement. Subqueries can be used with SELECT, INSERT, UPDATE, and DELETE statements. Correlated subqueries depend on the outer query, while non-correlated subqueries operate independently.