Bird
Raised Fist0
SQLquery~5 mins

Dropping and altering views in SQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the SQL command DROP VIEW do?
It removes an existing view from the database permanently. After dropping, the view no longer exists and cannot be queried.
Click to reveal answer
beginner
How do you change the structure or definition of an existing view in SQL?
You use the CREATE OR REPLACE VIEW statement with the new definition. This updates the view without dropping it first.
Click to reveal answer
intermediate
True or False: You can use ALTER VIEW to modify a view's SELECT statement in all SQL databases.
False. Not all SQL databases support ALTER VIEW. Many require dropping and recreating the view or using CREATE OR REPLACE VIEW.
Click to reveal answer
beginner
What happens if you try to drop a view that does not exist using DROP VIEW view_name;?
The database will return an error unless you use DROP VIEW IF EXISTS view_name; which avoids errors if the view is missing.
Click to reveal answer
intermediate
Why might you prefer CREATE OR REPLACE VIEW over dropping and recreating a view?
Because it keeps permissions and dependencies intact and avoids errors if the view is referenced elsewhere in the database.
Click to reveal answer
Which SQL command removes a view permanently?
ADROP VIEW view_name;
BALTER VIEW view_name;
CCREATE VIEW view_name;
DRENAME VIEW view_name;
How do you update the SELECT query of an existing view without dropping it first?
AALTER VIEW view_name AS SELECT ...;
BDROP VIEW view_name; CREATE VIEW view_name AS SELECT ...;
CCREATE OR REPLACE VIEW view_name AS SELECT ...;
DUPDATE VIEW view_name SET SELECT ...;
What does DROP VIEW IF EXISTS view_name; do?
ADrops the view only if it exists, avoiding errors if it doesn't.
BCreates the view if it does not exist.
CRenames the view if it exists.
DAlters the view if it exists.
Which statement is true about ALTER VIEW?
AAll SQL databases support <code>ALTER VIEW</code> to change view definitions.
BSome databases support <code>ALTER VIEW</code>, but many require <code>CREATE OR REPLACE VIEW</code>.
CNo SQL database supports <code>ALTER VIEW</code>.
D<code>ALTER VIEW</code> deletes the view.
Why is CREATE OR REPLACE VIEW often preferred over dropping and recreating a view?
AIt renames the view.
BIt automatically backs up the view.
CIt deletes all data in the view.
DIt keeps permissions and dependencies intact.
Explain how to safely update the definition of an existing view in SQL.
Think about commands that replace without deleting.
You got /3 concepts.
    Describe what happens when you drop a view and why you might want to use IF EXISTS.
    Consider error handling when the view might not be there.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the SQL command DROP VIEW view_name; do?
      easy
      A. It updates the data inside the view view_name.
      B. It renames the view view_name to another name.
      C. It creates a new view called view_name.
      D. It deletes the view named view_name from the database.

      Solution

      1. Step 1: Understand the purpose of DROP VIEW

        The command DROP VIEW is used to remove a view from the database completely.
      2. Step 2: Analyze the command effect

        Using DROP VIEW view_name; deletes the view named view_name, so it no longer exists.
      3. Final Answer:

        It deletes the view named view_name from the database. -> Option D
      4. Quick Check:

        DROP VIEW removes a view [OK]
      Hint: DROP VIEW deletes a view completely from the database [OK]
      Common Mistakes:
      • Thinking DROP VIEW updates data inside the view
      • Confusing DROP VIEW with CREATE VIEW
      • Assuming DROP VIEW renames the view
      2. Which of the following is the correct syntax to change the query inside an existing view named employee_view?
      easy
      A. MODIFY VIEW employee_view SELECT * FROM employees;
      B. UPDATE VIEW employee_view SET query = 'SELECT * FROM employees';
      C. ALTER VIEW employee_view AS SELECT * FROM employees WHERE active = 1;
      D. CHANGE VIEW employee_view TO SELECT * FROM employees;

      Solution

      1. Step 1: Recall ALTER VIEW syntax

        The correct syntax to change a view's query is ALTER VIEW view_name AS SELECT ....
      2. 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.
      3. Final Answer:

        ALTER VIEW employee_view AS SELECT * FROM employees WHERE active = 1; -> Option C
      4. Quick Check:

        ALTER VIEW uses AS SELECT [OK]
      Hint: Use ALTER VIEW view_name AS SELECT ... to update a view [OK]
      Common Mistakes:
      • Using UPDATE or MODIFY instead of ALTER
      • Omitting AS keyword
      • Trying to rename view with ALTER VIEW
      3. Given a 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;?
      medium
      A. It will return all customers with status 'inactive'.
      B. It will cause a syntax error.
      C. It will return all customers regardless of status.
      D. It will return all customers with status 'active'.

      Solution

      1. Step 1: Understand ALTER VIEW effect

        The ALTER VIEW command changes the query inside the view to the new SELECT statement.
      2. Step 2: Analyze the new query

        The view now selects customers where status = 'inactive'. So querying the view returns inactive customers.
      3. Final Answer:

        It will return all customers with status 'inactive'. -> Option A
      4. Quick Check:

        ALTER VIEW changes the view's query [OK]
      Hint: ALTER VIEW changes the query; output matches new SELECT [OK]
      Common Mistakes:
      • Assuming view still returns old data after ALTER
      • Thinking ALTER VIEW causes errors if view exists
      • Confusing view data with table data
      4. You try to run ALTER VIEW sales_view AS SELECT * FROM sales WHERE amount > 1000; but get an error. What is the most likely cause?
      medium
      A. The view sales_view does not exist.
      B. The SELECT query inside ALTER VIEW is missing a semicolon.
      C. You cannot use WHERE clauses inside ALTER VIEW.
      D. ALTER VIEW requires DROP VIEW before use.

      Solution

      1. Step 1: Check ALTER VIEW prerequisites

        ALTER VIEW requires the view to already exist to modify it.
      2. Step 2: Identify common error cause

        If the view sales_view does not exist, ALTER VIEW will fail with an error.
      3. Final Answer:

        The view sales_view does not exist. -> Option A
      4. Quick Check:

        ALTER VIEW fails if view missing [OK]
      Hint: Ensure view exists before ALTER VIEW [OK]
      Common Mistakes:
      • Thinking WHERE clause is invalid in ALTER VIEW
      • Assuming semicolon inside ALTER VIEW causes error
      • Believing DROP VIEW is needed before ALTER VIEW
      5. You have a 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?
      hard
      A. DROP VIEW product_summary; CREATE VIEW product_summary AS SELECT name, SUM(sales) FROM products GROUP BY name HAVING SUM(sales) > 500;
      B. ALTER VIEW product_summary AS SELECT name, SUM(sales) FROM products GROUP BY name HAVING SUM(sales) > 500;
      C. UPDATE VIEW product_summary SET query = 'SELECT name, SUM(sales) FROM products GROUP BY name HAVING SUM(sales) > 500;';
      D. REPLACE VIEW product_summary AS SELECT name, SUM(sales) FROM products GROUP BY name HAVING SUM(sales) > 500;

      Solution

      1. Step 1: Understand how to update a view's query

        ALTER VIEW updates the query inside an existing view without dropping it.
      2. 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.
      3. Final Answer:

        ALTER VIEW product_summary AS SELECT name, SUM(sales) FROM products GROUP BY name HAVING SUM(sales) > 500; -> Option B
      4. Quick Check:

        Use ALTER VIEW to update view query safely [OK]
      Hint: Use ALTER VIEW to update query without dropping [OK]
      Common Mistakes:
      • Dropping view unnecessarily before updating
      • Using UPDATE VIEW or REPLACE VIEW which are invalid
      • Not including HAVING clause in the new query