📖 Scenario: You are working with a simple database of a bookstore. You want to see the list of books available along with their authors and prices.
🎯 Goal: Build a simple SQL query using SELECT to retrieve data from a table called books.
📋 What You'll Learn
Create a table called books with columns id, title, author, and price.
Insert three specific book records into the books table.
Write a SELECT query to retrieve all columns from the books table.
Add a condition to retrieve only books priced above 20.
💡 Why This Matters
🌍 Real World
Selecting data is how you get information from databases to show on websites, apps, or reports.
💼 Career
Knowing how SELECT works is essential for any job involving databases, data analysis, or backend development.
Progress0 / 4 steps
1
Create the books table
Write a SQL statement to create a table called books with columns: id as integer primary key, title as text, author as text, and price as decimal(5,2).
MySQL
Hint
Use CREATE TABLE books and define the columns with their types.
2
Insert book records
Insert these three books into the books table: (1, 'The Great Gatsby', 'F. Scott Fitzgerald', 10.99), (2, '1984', 'George Orwell', 22.50), and (3, 'To Kill a Mockingbird', 'Harper Lee', 18.75).
MySQL
Hint
Use a single INSERT INTO books statement with multiple rows.
3
Write a SELECT query to retrieve all books
Write a SQL query using SELECT * FROM books to retrieve all columns and all rows from the books table.
MySQL
Hint
Use SELECT * FROM books; to get all data.
4
Add a condition to select books priced above 20
Modify the previous SELECT query to retrieve only books where the price is greater than 20 using WHERE price > 20.
MySQL
Hint
Add WHERE price > 20 to filter the results.
Practice
(1/5)
1. What is the main purpose of the SELECT statement in MySQL?
easy
A. To retrieve data from one or more tables
B. To delete data from a table
C. To update existing data in a table
D. To create a new table in the database
Solution
Step 1: Understand the role of SELECT
The SELECT statement is designed to fetch or retrieve data stored in tables.
Step 2: Compare with other SQL commands
DELETE removes data, UPDATE changes data, and CREATE TABLE makes new tables, so these are not for retrieving data.
Final Answer:
To retrieve data from one or more tables -> Option A
Quick Check:
SELECT = retrieve data [OK]
Hint: SELECT always fetches data, not changes or deletes [OK]
Common Mistakes:
Confusing SELECT with DELETE or UPDATE
Thinking SELECT creates tables
Assuming SELECT modifies data
2. Which of the following is the correct syntax to select all columns from a table named employees?
easy
A. SELECT employees FROM *;
B. SELECT ALL employees;
C. SELECT * FROM employees;
D. GET * FROM employees;
Solution
Step 1: Recall correct SELECT syntax
The correct syntax to select all columns is SELECT * FROM table_name;.
Step 2: Check each option
SELECT * FROM employees; matches the correct syntax. The other options are invalid: table name before *, using ALL incorrectly, and using GET instead of SELECT.
Final Answer:
SELECT * FROM employees; -> Option C
Quick Check:
SELECT * FROM table = correct syntax [OK]
Hint: Use * to select all columns in SELECT [OK]
Common Mistakes:
Using GET instead of SELECT
Placing table name before *
Using ALL keyword incorrectly
3. Given the table products with columns id, name, and price, what will this query return?
SELECT name FROM products WHERE price > 100;
medium
A. All product names with price less than 100
B. All product names with price greater than 100
C. All columns for products priced over 100
D. An error because price comparison is invalid
Solution
Step 1: Analyze the SELECT clause
The query selects only the name column from the products table.
Step 2: Understand the WHERE condition
The condition price > 100 filters rows where price is greater than 100.
Final Answer:
All product names with price greater than 100 -> Option B
Quick Check:
SELECT name WHERE price > 100 = product names over 100 [OK]
Hint: WHERE filters rows; SELECT chooses columns [OK]
Common Mistakes:
Confusing greater than with less than
Expecting all columns instead of just name
Thinking the query causes an error
4. Identify the error in this query:
SELECT FROM customers WHERE age > 30;
medium
A. Missing column names after SELECT
B. Incorrect WHERE clause syntax
C. Table name should be after WHERE
D. No error, query is correct
Solution
Step 1: Check SELECT syntax
SELECT must be followed by column names or * to specify what to retrieve.
Step 2: Review the query structure
The query has SELECT but no columns listed before FROM, which is invalid syntax.
Final Answer:
Missing column names after SELECT -> Option A
Quick Check:
SELECT needs columns or * [OK]
Hint: Always specify columns or * after SELECT [OK]
Common Mistakes:
Leaving SELECT empty
Placing table name after WHERE
Assuming WHERE syntax is wrong
5. You want to see only the email addresses of customers who live in 'New York' from the customers table. Which query correctly retrieves this data?
hard
A. SELECT email FROM customers WHERE city == 'New York';
B. SELECT * FROM customers WHERE city = New York;
C. SELECT email WHERE city = 'New York' FROM customers;
D. SELECT email FROM customers WHERE city = 'New York';
Solution
Step 1: Identify correct SELECT and WHERE syntax
The correct syntax is SELECT column FROM table WHERE condition;. The city value must be in quotes.
Step 2: Evaluate each option
SELECT email FROM customers WHERE city = 'New York'; uses correct syntax and quotes around 'New York'. SELECT * FROM customers WHERE city = New York; misses quotes, causing error. SELECT email WHERE city = 'New York' FROM customers; has wrong clause order. SELECT email FROM customers WHERE city == 'New York'; uses double equals which is invalid in SQL.
Final Answer:
SELECT email FROM customers WHERE city = 'New York'; -> Option D
Quick Check:
Correct syntax with quotes and order [OK]
Hint: Use single quotes for string values in WHERE [OK]
Common Mistakes:
Omitting quotes around string values
Using == instead of = in WHERE
Placing WHERE before FROM
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.