Views help us see data in a simple way. Sometimes, we need to change or remove these views to keep data clear and useful.
Dropping and altering views in SQL
Start learning this pattern below
Jump into concepts and practice - no test required
DROP VIEW view_name; CREATE OR REPLACE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;
DROP VIEW removes the view completely.
CREATE OR REPLACE VIEW changes the view's query to show different data.
employee_view from the database.DROP VIEW employee_view;
employee_view to show only active employees with their id, name, and department.CREATE OR REPLACE VIEW employee_view AS SELECT id, name, department FROM employees WHERE active = 1;
First, we create a view called product_view showing all products. Then, we change it to show only products costing more than 100. Next, we select all data from this view to see the filtered products. Finally, we remove the view.
CREATE VIEW product_view AS SELECT id, name, price FROM products; CREATE OR REPLACE VIEW product_view AS SELECT id, name, price FROM products WHERE price > 100; SELECT * FROM product_view; DROP VIEW product_view;
Not all database systems support ALTER VIEW. Sometimes you must drop and recreate the view.
Dropping a view does not delete the data in the original tables.
Be careful when dropping views used by other parts of your system.
DROP VIEW removes a view from the database.
CREATE OR REPLACE VIEW changes the query inside a view to update its data.
Use these commands to keep your views accurate and your database clean.
Practice
DROP VIEW view_name; do?Solution
Step 1: Understand the purpose of DROP VIEW
The commandDROP VIEWis used to remove a view from the database completely.Step 2: Analyze the command effect
UsingDROP VIEW view_name;deletes the view namedview_name, so it no longer exists.Final Answer:
It deletes the view named view_name from the database. -> Option DQuick Check:
DROP VIEW removes a view [OK]
- Thinking DROP VIEW updates data inside the view
- Confusing DROP VIEW with CREATE VIEW
- Assuming DROP VIEW renames the view
employee_view?Solution
Step 1: Recall ALTER VIEW syntax
The correct syntax to change a view's query isALTER VIEW view_name AS SELECT ....Step 2: Check each option
ALTER VIEW employee_view AS SELECT * FROM employees WHERE active = 1; uses the correct syntax. Options B, C, and D use invalid or non-existent commands.Final Answer:
ALTER VIEW employee_view AS SELECT * FROM employees WHERE active = 1; -> Option CQuick Check:
ALTER VIEW uses AS SELECT [OK]
- Using UPDATE or MODIFY instead of ALTER
- Omitting AS keyword
- Trying to rename view with ALTER VIEW
active_customers defined as SELECT * FROM customers WHERE status = 'active', what will be the result after running ALTER VIEW active_customers AS SELECT * FROM customers WHERE status = 'inactive'; and then querying SELECT * FROM active_customers;?Solution
Step 1: Understand ALTER VIEW effect
The ALTER VIEW command changes the query inside the view to the new SELECT statement.Step 2: Analyze the new query
The view now selects customers where status = 'inactive'. So querying the view returns inactive customers.Final Answer:
It will return all customers with status 'inactive'. -> Option AQuick Check:
ALTER VIEW changes the view's query [OK]
- Assuming view still returns old data after ALTER
- Thinking ALTER VIEW causes errors if view exists
- Confusing view data with table data
ALTER VIEW sales_view AS SELECT * FROM sales WHERE amount > 1000; but get an error. What is the most likely cause?Solution
Step 1: Check ALTER VIEW prerequisites
ALTER VIEW requires the view to already exist to modify it.Step 2: Identify common error cause
If the viewsales_viewdoes not exist, ALTER VIEW will fail with an error.Final Answer:
The view sales_view does not exist. -> Option AQuick Check:
ALTER VIEW fails if view missing [OK]
- Thinking WHERE clause is invalid in ALTER VIEW
- Assuming semicolon inside ALTER VIEW causes error
- Believing DROP VIEW is needed before ALTER VIEW
product_summary showing product names and total sales. You want to update it to include only products with sales over 500. Which sequence of commands correctly updates the view without losing it?Solution
Step 1: Understand how to update a view's query
ALTER VIEW updates the query inside an existing view without dropping it.Step 2: Check each option's correctness
ALTER VIEW product_summary AS SELECT name, SUM(sales) FROM products GROUP BY name HAVING SUM(sales) > 500; uses ALTER VIEW with the correct query. DROP VIEW product_summary; CREATE VIEW product_summary AS SELECT name, SUM(sales) FROM products GROUP BY name HAVING SUM(sales) > 500; drops and recreates the view, which is not needed. Options B and D use invalid commands.Final Answer:
ALTER VIEW product_summary AS SELECT name, SUM(sales) FROM products GROUP BY name HAVING SUM(sales) > 500; -> Option BQuick Check:
Use ALTER VIEW to update view query safely [OK]
- Dropping view unnecessarily before updating
- Using UPDATE VIEW or REPLACE VIEW which are invalid
- Not including HAVING clause in the new query
