0
0
MySQLquery~20 mins

Creating views in MySQL - Practice Exercises

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
View Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
2:00remaining
Output of a simple view query
Given a table Employees with columns id, name, and salary, and a view HighEarners defined as CREATE VIEW HighEarners AS SELECT name, salary FROM Employees WHERE salary > 50000;, what will be the output of SELECT * FROM HighEarners; if the table contains:

id | name | salary
1 | Alice | 60000
2 | Bob | 45000
3 | Carol | 70000
MySQL
CREATE VIEW HighEarners AS SELECT name, salary FROM Employees WHERE salary > 50000;
SELECT * FROM HighEarners;
A[{"name": "Alice", "salary": 60000}, {"name": "Carol", "salary": 70000}]
B[]
C[{"name": "Bob", "salary": 45000}]
D[{"id": 1, "name": "Alice", "salary": 60000}, {"id": 3, "name": "Carol", "salary": 70000}]
Attempts:
2 left
💡 Hint
The view filters employees with salary greater than 50000 and selects only name and salary columns.
🧠 Conceptual
intermediate
2:00remaining
Understanding view update restrictions
Which of the following statements about updating data through a MySQL view is correct?
AYou can update data through any view regardless of how complex its SELECT statement is.
BViews always allow INSERT operations but never UPDATE or DELETE.
CYou cannot update data through a view that includes GROUP BY or aggregate functions.
DUpdating a view automatically creates a new table with the updated data.
Attempts:
2 left
💡 Hint
Think about what happens when a view groups or summarizes data.
📝 Syntax
advanced
2:00remaining
Identify the correct syntax to create a view
Which option correctly creates a view named TopProducts that shows product_name and price from the Products table where price is greater than 100?
ACREATE VIEW TopProducts SELECT product_name, price FROM Products WHERE price > 100;
BCREATE TopProducts VIEW AS SELECT product_name, price FROM Products WHERE price > 100;
CVIEW CREATE TopProducts AS SELECT product_name, price FROM Products WHERE price > 100;
DCREATE VIEW TopProducts AS SELECT product_name, price FROM Products WHERE price > 100;
Attempts:
2 left
💡 Hint
Remember the order: CREATE VIEW view_name AS SELECT ...
optimization
advanced
2:00remaining
Improving performance of a view with joins
You have a view OrderDetailsView that joins Orders and Customers tables. The view is slow when queried. Which approach will most likely improve query performance?
ADrop the view and query the tables directly without any indexes.
BAdd indexes on the join columns in both tables.
CRewrite the view to use subqueries instead of joins.
DCreate the view with SELECT * to include all columns.
Attempts:
2 left
💡 Hint
Indexes help speed up joins by quickly locating matching rows.
🔧 Debug
expert
2:00remaining
Diagnosing error when creating a view
You run this statement:
CREATE VIEW RecentSales AS SELECT sale_id, sale_date FROM (SELECT * FROM Sales) AS tmp WHERE sale_date > NOW() - INTERVAL 30 DAY;
But MySQL returns an error: "ERROR 1349 (HY000): View's SELECT contains a subquery in the FROM clause". What is the most likely cause?
AThe view's SELECT contains a subquery in the FROM clause, which is not allowed.
BThe WHERE clause uses an interval expression which is not supported in views.
CThe view's SELECT uses a function (NOW()) which is not allowed in views.
DThe view name RecentSales is a reserved keyword and cannot be used.
Attempts:
2 left
💡 Hint
Check if the SELECT statement has any subqueries inside FROM.