# Creating and Managing Views

# Creating and Managing Views

## **Background**

If some columns in one or more tables in a database are frequently searched for, an administrator can define a view for these columns, and then users can directly access these columns in the view without entering search criteria.

A view is different from a base table. It is only a virtual object rather than a physical one. Only view definition is stored in the database and view data is not. The data is stored in a base table. If data in the base table changes, the data in the view changes accordingly. In this sense, a view is like a window through which users can know their interested data and data changes in the database. A view is triggered every time it is referenced.

## **Managing Views**

* Creating a view
    
    Run the following command to create **MyView**:
    
    ```plaintext
    ""postgres=# CREATE OR REPLACE VIEW MyView AS SELECT * FROM tpcds.web_returns WHERE trunc(wr_refunded_cash) > 10000;
    CREATE VIEW
    ```
    
    > **NOTE:**  
    > The **OR REPLACE** parameter in this command is optional. It indicates that if the view exists, the new view will replace the existing view.
    
* Querying a view
    
    Run the following command to query **MyView**:
    
    ```plaintext
    ""SELECT * FROM MyView;
    ```
    
* Viewing details about a specified view
    
    Run the following command to view details about the **dba\_users** view:
    
    ```plaintext
    ""postgres=# \d+ dba_users
                          View "PG_CATALOG.DBA_USERS"
      Column  |         Type          | Modifiers | Storage  | Description
    ----------+-----------------------+-----------+----------+-------------
     USERNAME | CHARACTER VARYING(64) |           | extended |
    View definition:
     SELECT PG_AUTHID.ROLNAME::CHARACTER VARYING(64) AS USERNAME
       FROM PG_AUTHID;
    ```
    
* Deleting a view
    
    Run the following command to delete **MyView**:
    
    ```plaintext
    ""postgres=# DROP VIEW MyView;
    DROP VIEW
    ```
    

[Previous](https://docs.opengauss.org/en/docs/5.0.0/docs/DatabaseAdministrationGuide/creating-and-managing-indexes.html)

[Next](https://docs.opengauss.org/en/docs/5.0.0/docs/DatabaseAdministrationGuide/creating-and-managing-sequences.html)
