📖 Scenario: You are managing a small bookstore database. You want to find books that are either by a specific author or belong to a certain genre.
🎯 Goal: Build an SQL query that selects books where the author is either 'J.K. Rowling' or the genre is 'Fantasy'.
📋 What You'll Learn
Create a table called books with columns id, title, author, and genre
Insert exactly 5 rows with specified values
Write a SELECT query using WHERE with OR to filter books by author or genre
Use exact column and table names as specified
💡 Why This Matters
🌍 Real World
Filtering data with multiple conditions is common in databases for reports, searches, and data analysis.
💼 Career
Knowing how to use WHERE with OR helps in writing flexible queries for business intelligence, software development, and data management roles.
Progress0 / 4 steps
1
Create the books table and insert data
Write SQL statements to create a table called books with columns id (integer), title (text), author (text), and genre (text). Then insert these 5 rows exactly: (1, 'Harry Potter and the Sorcerer''s Stone', 'J.K. Rowling', 'Fantasy'), (2, 'The Hobbit', 'J.R.R. Tolkien', 'Fantasy'), (3, '1984', 'George Orwell', 'Dystopian'), (4, 'To Kill a Mockingbird', 'Harper Lee', 'Classic'), (5, 'The Casual Vacancy', 'J.K. Rowling', 'Drama').
SQL
Hint
Use CREATE TABLE to define the table and INSERT INTO with multiple rows to add data.
2
Set up the SELECT query base
Write the beginning of a SELECT query that selects all columns from the books table. Use SELECT * and FROM books.
SQL
Hint
Use SELECT * to get all columns and FROM books to specify the table.
3
Add the WHERE clause with OR operator
Add a WHERE clause to the SELECT query that filters rows where the author is 'J.K. Rowling' or the genre is 'Fantasy'. Use the OR operator exactly as shown.
SQL
Hint
Use WHERE followed by the condition with OR to filter rows.
4
Complete the query with a semicolon
Add a semicolon ; at the end of the SELECT query to complete the SQL statement.
SQL
Hint
SQL statements end with a semicolon ;. Make sure to add it at the end.
Practice
(1/5)
1. What does the SQL WHERE clause with the OR operator do?
easy
A. It deletes rows that meet any condition.
B. It selects rows that meet at least one of the conditions.
C. It selects rows that meet all conditions simultaneously.
D. It updates rows that meet none of the conditions.
Solution
Step 1: Understand the WHERE clause
The WHERE clause filters rows based on conditions.
Step 2: Understand the OR operator
OR means if any condition is true, the row is selected.
Final Answer:
It selects rows that meet at least one of the conditions. -> Option B
Quick Check:
WHERE with OR = any condition true [OK]
Hint: OR means any condition true selects the row [OK]
Common Mistakes:
Thinking OR requires all conditions true
Confusing OR with AND
Assuming OR deletes or updates rows
2. Which of the following SQL queries correctly uses the WHERE clause with the OR operator to find employees in department 10 or 20?
easy
A. SELECT * FROM employees WHERE department_id = 10 AND 20;
B. SELECT * FROM employees WHERE department_id = (10 OR 20);
C. SELECT * FROM employees WHERE department_id = 10 OR department_id = 20;
D. SELECT * FROM employees WHERE department_id IN 10 OR 20;
Solution
Step 1: Check correct OR syntax
OR must connect full conditions: column = value OR column = value.
Step 2: Analyze each option
A uses AND incorrectly; C uses invalid syntax; D misuses IN without parentheses.
Final Answer:
SELECT * FROM employees WHERE department_id = 10 OR department_id = 20; -> Option C
Quick Check:
Correct OR syntax = SELECT * FROM employees WHERE department_id = 10 OR department_id = 20; [OK]
Hint: Use OR between full conditions, not partial expressions [OK]
Common Mistakes:
Using AND instead of OR
Writing OR inside parentheses incorrectly
Misusing IN without parentheses
3. Given the table products with columns id, name, and category, what rows will this query return?
SELECT * FROM products WHERE category = 'Books' OR category = 'Toys';
medium
A. Products in either 'Books' or 'Toys' categories.
B. Only products in both 'Books' and 'Toys' categories.
C. All products except those in 'Books' or 'Toys'.
D. No products because OR is invalid here.
Solution
Step 1: Understand the OR condition
The query selects rows where category is 'Books' or 'Toys'.
Step 2: Determine matching rows
Rows with category 'Books' or 'Toys' will be included, others excluded.
Final Answer:
Products in either 'Books' or 'Toys' categories. -> Option A
Quick Check:
OR selects rows matching any condition [OK]
Hint: OR includes rows matching any listed condition [OK]
Common Mistakes:
Thinking OR means both conditions must be true
Assuming OR excludes matching rows
Believing OR causes syntax error
4. Identify the error in this SQL query:
SELECT * FROM orders WHERE status = 'Pending' OR;
medium
A. Missing condition after OR operator.
B. Incorrect use of WHERE clause.
C. OR operator should be AND.
D. No error, query is valid.
Solution
Step 1: Analyze the WHERE clause
The WHERE clause ends with OR but no condition follows it.
Step 2: Understand OR syntax
OR must connect two conditions; missing second condition causes syntax error.
Final Answer:
Missing condition after OR operator. -> Option A
Quick Check:
OR needs two conditions [OK]
Hint: OR must connect two conditions; don't leave it hanging [OK]
Common Mistakes:
Leaving OR at end without condition
Confusing OR with AND syntax
Ignoring syntax errors in WHERE clause
5. You have a table students with columns id, grade, and city. Write a query to select students who have grade 'A' or live in 'New York' or 'Los Angeles'. Which query is correct?
hard
A. SELECT * FROM students WHERE grade = 'A' OR city = 'New York' OR 'Los Angeles';
B. SELECT * FROM students WHERE grade = 'A' AND city = 'New York' OR 'Los Angeles';
C. SELECT * FROM students WHERE grade = 'A' OR city = 'New York' AND city = 'Los Angeles';
D. SELECT * FROM students WHERE grade = 'A' OR city IN ('New York', 'Los Angeles');
Solution
Step 1: Understand the conditions
Select students with grade 'A' OR city 'New York' OR city 'Los Angeles'.
Step 2: Analyze each query
A has syntax error (missing column in last condition); B has syntax error and wrong logic; C has incorrect logic due to AND; D is correct and concise using IN.
Final Answer:
SELECT * FROM students WHERE grade = 'A' OR city IN ('New York', 'Los Angeles'); -> Option D
Quick Check:
Use OR with IN for multiple values [OK]
Hint: Use OR with IN for multiple city values [OK]
Common Mistakes:
Using AND between city conditions
Omitting column name after OR
Syntax errors with OR and IN
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.