Skip to course content
Free SQL course

SQL for Data Analysis and AI

Module 02 Knowledge Check

5 questions. Pass mark 4 out of 5. Answer every question before checking the answer key below, then retry after reading the feedback.

1. Why is SELECT * risky in analysis queries you intend to keep?

2. ORDER BY with LIMIT 10 and no tie-breaking column can return…

3. In which order does the database logically apply these?

4. WHERE status = 'Completed' returns 0 rows but you know completed orders exist. Most likely cause?

5. You add LIMIT 100 while exploring. What must you remember before reporting a total?

---

Answer Key and Explanations

Check these only after attempting every question.

1. B - Column order and set can change upstream, silently changing your result

Naming columns makes the query's contract explicit and stable when the schema changes.

2. B - Different rows between runs when values tie

Ties have no guaranteed order. Add a unique tie-breaker for reproducible results.

3. B - WHERE then SELECT then ORDER BY

Rows are filtered first, then columns are produced, then the result is ordered - which is why a SELECT alias may not be usable in WHERE.

4. B - Case or whitespace mismatch in the stored values

String comparison is usually exact. Inspect distinct values before assuming the filter is right.

5. B - Remove it - an aggregate over a limited set is not the real total

A limit applied while exploring silently truncates the population your aggregate describes.

Practical Check

Apply this module to your own work: complete the module activity for *SELECT, WHERE, ORDER BY, and LIMIT*, then write one sentence naming what your result shows and one naming what it does not.

Strong Answer Pattern

A strong answer names the task, the evidence used, the check performed, and the remaining limitation. It avoids "proved", "guaranteed", or "always" unless the evidence genuinely supports it.