Is SELECT–FROM–WHERE the fundamental template of SQL SELECT statements (with optional GROUP BY, HAVING, ORDER BY, etc.)?
-
AApplies — SELECT–FROM–WHERE forms the core of SELECT queries
-
BDoes not apply — WHERE is illegal in SELECT
-
CApplies only to ANSI SQL but not to vendor systems
-
DDoes not apply — SELECT uses only ORDER BY and JOIN
Answer
Correct Answer: Applies — SELECT–FROM–WHERE forms the core of SELECT queries
Explanation
Introduction / Context:Understanding the canonical structure of SQL SELECT helps in composing queries and reading execution plans.
Given Data / Assumptions:
- Basic clauses: SELECT (projection), FROM (source tables/views), WHERE (row filtering).
- Optional clauses include GROUP BY, HAVING, ORDER BY, LIMIT/OFFSET (vendor-specific).
- JOINs are expressed within FROM (and sometimes with explicit JOIN syntax).
Concept / Approach:Most SELECT statements can be expressed as: SELECT ... FROM ... WHERE ..., with optional grouping and ordering. This pattern underpins both simple and complex queries.
Step-by-Step Solution:Identify core roles: SELECT determines columns/expressions.FROM identifies data sources and join conditions.WHERE filters rows before aggregation.Add optional clauses as needed for grouping and ordering.
Verification / Alternative check:Try rewriting typical queries into this template; it holds broadly across RDBMSs.
Why Other Options Are Wrong:WHERE is central to filtering and is not illegal. Vendor systems implement ANSI-style SELECT–FROM–WHERE with extensions rather than replacement.
Common Pitfalls:Misplacing filters in HAVING instead of WHERE when not aggregating; confusing join predicates with WHERE filters in legacy comma-joins.
Final Answer:Applies — SELECT–FROM–WHERE forms the core of SELECT queries