In this PostgreSQL post explains how to create, update, and drop VIEWS in PostgreSQL with syntax and examples.
In PostgreSQL, a VIEW is not a physical table, but rather, it is in essence a virtual table created by a query joining one or more tables.
The syntax for the CREATE VIEW statement in PostgreSQL is:
Optional. If you do not specify this clause and the VIEW already exists, the CREATE VIEW statement will return an error.
The name of the VIEW that you wish to create in PostgreSQL.
Optional. The conditions that must be met for the records to be included in the VIEW.
Here is an example of how to use the CREATE VIEW statement to create a view in PostgreSQL:
This CREATE VIEW example would create a virtual table based on the result set of the SELECT statement. You can now query the PostgreSQL VIEW as follows:
You can modify the definition of a VIEW in PostgreSQL without dropping it by using the CREATE OR REPLACE VIEW Statement.
The syntax for the CREATE OR REPLACE VIEW statement in PostgreSQL is:
The name of the view that you wish to update.
Here is an example of how you would use the CREATE OR REPLACE VIEW statement in PostgreSQL:
This CREATE OR REPLACE VIEW example would update the definition of the VIEW called current_inventory without dropping it.
CAUTION:
The CREATE OR REPLACE VIEW statement will work if you are adding columns to the view at the end of the list. However, it will error if you are adding new columns within the existing columns (ie: start or middle of the existing list).
In this case, do not use the CREATE OR REPLACE VIEW statement. It is better to drop the view and use the CREATE VIEW statement!
Once a VIEW has been created in PostgreSQL, you can drop it with the DROP VIEW statement.
The syntax for the DROP VIEW statement in PostgreSQL is:
The name of the view that you wish to drop.
Optional. If you do not specify this clause and the VIEW does not exist, the DROP VIEW statement will return an error.
Here is an example of how to use the DROP VIEW statement in PostgreSQL:
This DROP VIEW example would drop/delete the PostgreSQL VIEW called current_inventory.